アルゴリズムとかオーダーとか

仕事で勉強したことなどをまとめてます

Windows11+WSL2にKubeflow環境構築手順 2024年末版

最近GCPのPMLE試験に無事合格した。その試験勉強の際に問題として触れることが多かったKubeflowにすこぶる興味が湧いたので自宅PCに環境構築を行ってみた。この記事は環境構築手順についてメモ的に残すためのもの。

構築手順については先人のブログと公式のgithubを参考にしながら進めた。
venoda.hatenablog.com
github.com

注意点

インストールするkubeflowのバージョンは常に最新版が良いというわけではなく、kubernetesのバージョンとの互換性を確認する必要がある。

今回はkubernetes 1.30.5だったので、最新版のkubeflow v1.19.1をインストールした。
また、kubeflowのインストールに必要なkustomizeとkubectlもそれぞれサポートバージョンが指定されているので確認すること。

kubectlのサポートバージョンについてはkubernetesの公式にて説明されている。
kubernetes.io

ここにある通り、kubectlはkubernetesのバージョンの±1の範囲がサポートバージョンのため、今回はv1.31.0をインストールした。

事前セットアップ

WSL2の有効化とDocker Desktop、Ubuntu 24.04LTSを事前にインストールしておく必要がある。
これらのインストール手順の説明は割愛。

なお、Ubuntuをインストールする前にWSLのバージョンは最新版にアップデートしておいたほうがよさそう。
WSLのアップデートは以下のコマンドをPowerShellなどで実行する。

wsl.exe --update

環境

  • Windows11 24H2
  • プロセッサ: Intel(R) Core(TM) i9-9900KF CPU @ 3.60GHz 3.60 GHz
  • メモリ: 32.0 GB

WSL --versionの結果

WSL バージョン: 2.3.26.0
カーネル バージョン: 5.15.167.4-1
WSLg バージョン: 1.0.65
MSRDC バージョン: 1.2.5620
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.26100.1-240331-1435.ge-release
Windows バージョン: 10.0.26100.2605

そのほかのバージョン

Windowsの場合はKubeflowはDocker Desktopから有効にする。別途インストールは不要。

enable kubernetes

Kubectl v1.31.0のインストール

参考
kubectl.docs.kubernetes.io

export os="linux/amd64"
curl -LO "https://dl.k8s.io/release/v1.31.0/bin/$os/kubectl"
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

for check

$ kubectl version --client
Client Version: v1.31.0
Kustomize Version: v5.4.2

Kustomize v5.4.2のインストール

curl -LO https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv5.4.2/kustomize_v5.4.2_linux_amd64.tar.gz
 tar -zxf kustomize_v5.4.2_linux_amd64.tar.gz
chmod +x ./kustomize
sudo mv ./kustomize /usr/local/bin/kustomize

for check

~$ kustomize version
v5.4.2

kubeflow v1.9.1のインストール

大量のpodsを生成できるようにUbuntuの設定を変更

sudo sysctl fs.inotify.max_user_instances=2280
sudo sysctl fs.inotify.max_user_watches=1255360

kubeflowのmanifestリポジトリをcloneしてv1.9.1のブランチをcheckout

git clone https://github.com/kubeflow/manifests.git
cd ./manifests
git checkout -b v1.9.1-branch origin/v1.9.1-branch

One Line コマンドで必要なpodsをすべてインストール

while ! kustomize build example | kubectl apply -f -; do echo "Retrying to apply resources"; sleep 20; done

最終チェック。kubeflowのpodsが動いているか確認

kubectl get pods -n kubeflow

ダッシュボードにアクセスする

Portforward

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

初期のusernameとpasswordは以下。

email: [email protected]
password: 12341234

初期ログイン情報と変更の仕方は以下に記載がある。
https://github.com/kubeflow/manifests?tab=readme-ov-file#dex


無事ダッシュボードが表示できた。

kubeflow dashboard