Notebookを動かしていました。Notebookを動かすのは実際の本番環境と異なっており、開発がしんどくなってきたので、今回、Minikubeを使ってJupyterHubをローカル開発環境上に構築しました。Registry)などにpushしてから利用する場合、Helmの最新安定版の0.7.0では対応できなかったので記事をかいている現在最新の0.8-b6bdb73を利用して構築しました。JupyterHub(0.8-b6bdb73)をMinikubeにデプロイするJupyterHubでGCRにおいてあるDockerイメージを使わない場合は、MinikubeがDockerイメージを取得する際のGCRの設定をする必要がないので簡単です。(この場合は、JupyterHubのHelmチャートのバージョンが0.7.0でも動かすことができます。)まずMinikubeを立ち上げます。Kubernetesで使うVMの、Diskサイズ40GB、メモリ8GB、CPUの数6を指定していますが、ここらへんはローカルのマシンの状況に応じて変えてください。リソースが少ないとJupyterHubのほかにPodを立ち上げたときにリソース不足でPodが立ち上がらなくなるので調整してください。6しばらくするとMinikubeが立ち上がるので、IngressのAdd-onを有効にします。BalancerがMinikubeだと機能しないのでIngressを通してJupyterHubにアクセスします。ingressIngressを通してアクセスするドメインの設定をしておきます。今回はjupyterhub.example.comというドメインを仮に/etc/hostsに登録しますが、各自すきなドメインとしてください。*.devのようなドメインの場合、ChromeがHSTSをきかせてHTTPSにリダイレクトされてこまるのでそれを避けるようなドメインにしてください。/etc/hostsに登録する。jupyterhub.example.com次にHelmをMinikubeのKubernetes側にインストールします。JupyterHubが参考になります)。設定ファイルをつくります。secretTokenとcookieSecretはよしなに設定してください。singleuserはデフォルトで10GBのディスク容量でユーザごとのディスクを作成するのですが、そんなには必要ないので2GBとしています。proxyのserviceはIngressを使うのでNodePortを指定しています。false次に、最新のJupyterHubのHelmファイルを取得します。Kubernetesにあるので、そこからダウンロードします。今回は、jupyterhub-0.8-b6bdb73.tgzをダウンロードして、解凍しました。解凍したフォルダをjupyterhubとします。HelmでJupyterHubをデプロイするには以下のようにします。ネットワークの環境によっては結構時間がかかるので完了するまでしばらく待ちます。podなどで正しくPodが作成されているか確かめます。最後に、Ingressの設定をします。設定ファイルは以下です。80MinikubeのKubernetesに適用します。ingress.yamlこれで、http://jupyterhub.example.comにアクセスすればJupyterHubにただしくアクセスできます。GCRにある独自ビルドしたHubやNotebookのイメージを利用してデプロイするGCRにあるDockerイメージをHubやNotebookのイメージとして使った場合の手順を説明します。HubやNotebookのイメージの作成自体はとくに特別なことはありませんが、HubのベースイメージはJupyterのHelmチャートと合わせる必要があります。jupyterhub/k8s-hub:80a76acとしました。今回は、以下のGCRのアドレスのイメージを使用するものとします。gcr.io/example/jupyter-singleuser-minikube:1.0.0MinikubeからGCRのDockerイメージを取得するにはJupyterのHelmチャートのvalues.yamlのhub.imagePullSecretとsingleuser.imagePullSecretにGCRのサービスアカウントを登録します。GCRのやりかたについてはJupyterHubのHelmチャートに詳しくかいてあります。以下は今回使うvalues.yamlのimagePullSecret設定の一部です。}あとは先程と同じようにHelmでJupyterHubをデプロイします。これで独自にビルドしたDockerイメージをMinikube上のJupyterHubでうごかせました。1800まとめJupyterHubを、最新のHelmチャートを使ってMinikubeでデプロイする手順を説明しました。最新のバージョン(0.8-b6bdb73)で、imagePullSecretを使えば、GCRにあるDockerイメージもHubやNotebookとして使うことができます。Minikubeを使いましたがなかなか使えそうです。これでローカルでの開発もはかどりそうですね。blogHomeAboutTool。