はじめに
今回は、できる限りMac環境を汚さずkindを活用してKubeflow Pipelinesを構築する手順を解説します。
Kubeflow Pipelinesとは、機械学習のワークフローを簡単に構築、実行、管理できるオープンソースのツールです。一方で、Kubernetesはコンテナ化されたアプリケーションを効率的に管理するためのプラットフォームであり、Kubeflowはその上で動作します。
「試してみたいけど環境構築が不安」という方に向けて、手順をわかりやすく説明しますので、ぜひご参考ください!
前提条件
以下のツールが必要です。未インストールの場合はリンク先を参照して準備してください。
- Docker Desktop: 公式サイト
- kubectl: Kubernetes CLI ツール (Homebrewを使用)
- kind: Kubernetes in Docker ツール (公式サイト)
手順
1. Docker Desktopのセットアップとリソース調整
Docker Desktopをインストールしたら、以下のリソース設定を調整してください。Kubernetesを有効化し、リソース不足を防ぎます。
-
Docker Desktopを起動
メニューバーのDockerアイコンをクリックして設定を開きます。 -
Kubernetesを有効化
設定画面で「Kubernetes」を選択し、「Enable Kubernetes」を有効にします。
-
リソース調整
「Resources」タブを選択して、以下を設定: -
設定の適用
「Apply & Restart」をクリックしてDockerを再起動します。
2. kindのインストール
kind
(Kubernetes in Docker)を使用してKubernetesクラスタを構築します。
-
公式バイナリを手動でダウンロード
ターミナルで以下を実行してkindをダウンロードします:curl -Lo ./kind "https://kind.sigs.k8s.io/dl/v0.20.0/kind-darwin-amd64"
-
実行権限を付与
ダウンロードしたバイナリに実行権限を付与します:chmod +x ./kind
-
バイナリをPATHに移動
kind
をシステムPATHに移動します:sudo mv ./kind /usr/local/bin/kind
-
動作確認
kind
が正しく動作することを確認します:kind version
3. Kubernetesクラスタの作成
以下のコマンドを実行して、Kubernetesクラスタを作成します:
kind create cluster
作成には数分かかります。成功すると kind
が自動的に kubectl
のコンテキストを設定します。
クラスタ情報を確認:
kubectl cluster-info --context kind-kind
4. kubectlの動作確認
kubectl
が正しく動作するか確認します。
-
インストール確認:
kubectl version --client
-
ノード確認:
kubectl get nodes
5. Kubeflow Pipelinesのデプロイ
次に、Kubeflow Pipelines をデプロイします。
-
クラスター全体のリソースを適用:
kubectl apply -k "github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref=1.8.1"
-
パイプライン環境のデプロイ:
kubectl apply -k "github.com/kubeflow/pipelines/manifests/kustomize/env/platform-agnostic-pns?ref=1.8.1"
-
Podの起動確認:
kubectl get pods -n kubeflow
6. ポートフォワードでUIアクセス
以下のコマンドを実行して、ブラウザからアクセスできるようにします:
kubectl port-forward -n kubeflow svc/ml-pipeline-ui 8080:80
ブラウザで http://localhost:8080
にアクセスし、Kubeflow PipelinesのUIが表示されることを確認してください。
停止方法
以下の手順でリソースを削除または停止できます:
すべてのリソースを削除(完全停止)
現在のリソースをすべて削除します:
kubectl delete all --all -n kubeflow
個別のリソースを停止
必要に応じて特定のPodやサービスのみを停止します:
kubectl delete pod <POD_NAME> -n kubeflow
または
kubectl delete deployment <DEPLOYMENT_NAME> -n kubeflow
クラスタ全体を削除
Kindで作成したクラスタ自体を削除します:
kind delete cluster
ポイント
- Docker Desktopのリソース割り当てが不足していると、KubernetesやPodの起動が失敗する可能性があります。リソース調整は必須です。
-
kubectl describe pod <POD_NAME> -n kubeflow
を使用して、Podの詳細な状態を確認し、エラー解決に役立ててください。
終わりに
以上の手順を通して、Mac環境を汚さずにkindを活用してKubeflow Pipelinesをローカルで構築する方法を解説しました。この方法は、環境設定をシンプルに保ちながら、Kubernetesクラスタを使った開発やテストを行いたい方に最適です。Dockerのリソース設定やPodの状態確認を適切に行うことで、スムーズにセットアップが進むはずです。
ぜひこの記事を参考に、ローカルでKubeflow Pipelinesの実験や学習を進めてみてください!