WindowsにKubeflowのインストール


1. はじめに

Windows環境下へのKubeflowのインストール方法を説明します。

公式サイトにある通りにインストールしてみても、エラーが出でダッシュボードにたどり着けなかったりと、いろいろと苦労したので、ノウハウをシェアできればと思います。

※こちらの情報は2022年12月時点の情報になるのでご注意ください。


1.1. やること

DockerとKubernetesWindows環境のものを使用して、Kubeflow自体はWSL上にインストールします。

インストール方法は、手動でマニフェストファイルよりインストールを実施します。

www.kubeflow.org


参考までに試してダメだったことです。

1.2. ダメだったこと①

こちらのVargantとVritual Boxを使用した方法だと、うまくインストールできませんでした。

v0-7.kubeflow.org


1.3. ダメだったこと②

WSLがsystemdに対応したことにより、WSL環境でsnapが使えるようになりました。

systemdを有効にした後で、こちらの方法を試してみましたが、うまくインストールできませんでした。

charmed-kubeflow.io




2. 前提条件

インストール手順は下記を参考にしています。

github.com

Kubernetesなど、最新のバージョンには対応していないので指定のバージョンを準備をする必要があります。

  1. Kubernetes (up to 1.21)
  2. kustomize (version 3.2.0)
  3. kubectl


3. インストール方法

3.1. Linux環境の準備

3.1.1. WSLの最新化

Linux環境はWSLを使用します。

最近になってWSLがsystemdに対応したため、WSLを最新化させます。

Microsoft StoreよりWSLをインストールします。

経緯に関してはこちらを参照してください。

forest.watch.impress.co.jp

※今回のKubeflowのインストールに、この設定がどこまで影響するかは不明なため飛ばしてもらっても良いかもしれません。

下記のコマンドが実行できれば、最新化できています。

wsl --version


3.1.2. Ubuntu環境の構築

コマンド上よりUbuntuをインストールします。

wsl --install Ubuntu-20.04

コマンドを実行すると、Ubuntuが立ち上がりユーザ名とパスワードを設定します。


3.1.3. systemdの有効化

設定が完了したらsystemdを有効化します。

/etc/wsl.confに下記の内容を追記します。

※ファイルがなければ新規作成してください。

[boot]
systemd=true

設定が完了したらUbuntuを再起動させます。

wsl --shutdown Ubuntu-22.04




3.2. DockerとKubernetesの準備

3.2.1. Docker Desktopのインストール

Docker Desktopをインストールします。

KubernetesはDocker Desktop上のものを利用します。

注意点として、Kubernetesはバージョンが1.21までのバージョンをインストールする必要があります。

そのため、こちらのリンクよりDocker Desktopのバージョンが4.1.0をインストールします。

docs.docker.com

対象のバージョンの赤枠をクリックすれば、ダウンロードが開始されます。

ダウンロードができたら、exeファイルをダブルクリックしてインストールします。


3.2.2. Kubernetesの有効化

Docker Desktopを起動し、Kubernetesを有効化します。

  1. 「設定」アイコンをクリック
  2. Kubetertesタブをクリック
  3. チェックボックスにチェック
  4. 「Apply & Restart」をクリック

これでKubernetesの設定は完了です。


3.3. kubectlの準備

Ubuntu環境上でkubectlを準備します。

下記のコマンドを実行してkubectlをダウンロードして、実行可能な状態にします。

$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
$ chmod +x ./kubectl
$ sudo mv ./kubectl /usr/local/bin/kubectl

Windows上のKubernetesの設定ファイルをUbuntu上にコピーし、Ubuntu環境から接続できるようにします。

$ mkdir ~/.kube
$ cp /mnt/c/Users/<ユーザ名>/.kube/config ~/.kube




3.4. kustomizeの準備

Ubuntu環境上でkustomizeを準備します。

注意点として、kustomizeはバージョンが3.2.0のバージョンを準備する必要があります。

下記のコマンドを実行してkustomizeをダウンロードして、実行可能な状態にします。

$ curl -LO https://github.com/kubernetes-sigs/kustomize/releases/download/v3.2.0/kustomize_3.2.0_linux_amd64
$ chmod +x kustomize_3.2.0_linux_amd64
$ chmod +x kustomize_3.2.0_linux_amd64
$ sudo mv kustomize_3.2.0_linux_amd64 /usr/local/bin/kustomize

ダウンロード元のリンク取得方法ですが、kustomizeのGithubページからreleasesに移動します。

github.com

移動したら検索ボックスに「v3.2.0」と入力し、対象バージョンを検索します。

対象のバージョンから「Assets」の中の「kustomize_3.2.0_linux_amd64」を右クリックし、リンクのアドレスをコピーします。

これでダウンロード元のリンクを取得することができます。


3.5. kubeflowのインストール

3.5.1. リポジトリのクローン

Ubuntu環境上でを準備します。

下記のリポジトリをクローンします。

github.com

$ git clone https://github.com/kubeflow/manifests.git


3.5.2. kubeflowのインストール

今回は、下記のコマンドを実行してkubeflowの全機能をインストールします。

個々の機能をインストールする場合は、GithubのREADMEを参照してください。

$ cd manifests/
$ while ! kustomize build example | kubectl apply -f -; do echo "Retrying to apply resources"; sleep 10; done

エラーのようなメッセージが出力されることがありますが、スクリプトが終了すれば問題ないので、終了するまで待ちます。

※Profile関連のエラーが出続けて、スクリプトが終了しない場合、一度個別にインストールしてみてください。

# 個別にインストール
$ kustomize build apps/profiles/upstream/overlays/kubeflow | kubectl apply -f -

# インストール後再実行
$ while ! kustomize build example | kubectl apply -f -; do echo "Retrying to apply resources"; sleep 10; done

以下のコマンドでkubeflowのPodが立ち上がっているかを確認することができます。

すべてのPodが立ち上がるには少し時間がかかります。

$ kubectl get pods -n kubeflow

これでkubeflowのインストールが完了です。




4. ダッシュボードへのアクセス

kubeflowのダッシュボードにアクセスすために下記のコマンドを実行します。

$ kubectl port-forward svc/istio-ingressgateway -n istio-system 8080:80

http://localhost:8080でアクセスできます。

初期パスワードは下記の通りです。

email: user@example.com
password: 12341234

※パスワードの変更方法は、GithubのREADMEに記載があるので、そちらを参照してください。