kubeflow on Rancher で Pod has unbound PersistentVolumeClaims エラー


kubeflowをRancher(v2.2.3)でデプロイした際にはまった点のメモ。

事象

前提として、以下の様にAWS EC2上にRancherでk8sクラスタを構築し、カタログから「kubeflow」を選択して実行

すると、一見デプロイは成功した様に見え、kubeflowダッシュボードにもアクセスできる。

次に「Jupyterhub」を起動すると、下記の「Spawning Server」の状態から進まず、結果エラーとなる。

ログを確認すると以下のエラー。

Pod has unbound PersistentVolumeClaims

原因と対処

原因はエラーログの通り、Persistent Volume(永続ストレージ)が正しく設定できていないため。
kubeflowのコンポーネント「vizier-db」が永続ストレージを必須とするらしい。

対処は、GitHub issuesの「oganhz commented on 9 Oct 2018」のレスが参考になった。

カタログから、「nfs-provisioner」を作成した後に、kubeflowをデプロイすることで、エラーは解消。
これが永続ストレージをケアしてくれる。

とりあえず設定はすべてデフォルトで起動すると、Storage Classが生成される。

その後、kubeflowを起動すると、PersistentVolumeマウントが必要なコンポーネントがよしなに設定され、エラーなく起動できた。

参考