1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

KubernetesAdvent Calendar 2024

Day 21

kindを使ったKubeflow Pipelinesの環境構築方法について

Last updated at Posted at 2024-11-21

はじめに

今回は、できる限りMac環境を汚さずkindを活用してKubeflow Pipelinesを構築する手順を解説します。
Kubeflow Pipelinesとは、機械学習のワークフローを簡単に構築、実行、管理できるオープンソースのツールです。一方で、Kubernetesはコンテナ化されたアプリケーションを効率的に管理するためのプラットフォームであり、Kubeflowはその上で動作します。
「試してみたいけど環境構築が不安」という方に向けて、手順をわかりやすく説明しますので、ぜひご参考ください!

前提条件

以下のツールが必要です。未インストールの場合はリンク先を参照して準備してください。


手順

1. Docker Desktopのセットアップとリソース調整

Docker Desktopをインストールしたら、以下のリソース設定を調整してください。Kubernetesを有効化し、リソース不足を防ぎます。

  1. Docker Desktopを起動
    メニューバーのDockerアイコンをクリックして設定を開きます。

  2. Kubernetesを有効化
    設定画面で「Kubernetes」を選択し、「Enable Kubernetes」を有効にします。
    スクリーンショット 2024-11-22 0.53.03.png

  3. リソース調整
    「Resources」タブを選択して、以下を設定:

    • CPU: 4 Core 以上
    • Memory: 8GB 以上
    • Swap: 2GB 以上
      スクリーンショット 2024-11-22 0.52.25.png
  4. 設定の適用
    「Apply & Restart」をクリックしてDockerを再起動します。


2. kindのインストール

kind(Kubernetes in Docker)を使用してKubernetesクラスタを構築します。

  1. 公式バイナリを手動でダウンロード
    ターミナルで以下を実行してkindをダウンロードします:

    curl -Lo ./kind "https://kind.sigs.k8s.io/dl/v0.20.0/kind-darwin-amd64"
    
  2. 実行権限を付与
    ダウンロードしたバイナリに実行権限を付与します:

    chmod +x ./kind
    
  3. バイナリをPATHに移動
    kind をシステムPATHに移動します:

    sudo mv ./kind /usr/local/bin/kind
    
  4. 動作確認
    kind が正しく動作することを確認します:

    kind version
    

3. Kubernetesクラスタの作成

以下のコマンドを実行して、Kubernetesクラスタを作成します:

kind create cluster

スクリーンショット 2024-11-22 0.00.39.png
作成には数分かかります。成功すると kind が自動的に kubectl のコンテキストを設定します。

クラスタ情報を確認

kubectl cluster-info --context kind-kind

スクリーンショット 2024-11-22 0.01.03.png

4. kubectlの動作確認

kubectl が正しく動作するか確認します。

  1. インストール確認

    kubectl version --client
    

    スクリーンショット 2024-11-22 0.03.53.png

  2. ノード確認

    kubectl get nodes
    

    クラスタが正しく作成されていれば、kind-control-plane のノードが表示されます。
    スクリーンショット 2024-11-22 0.05.01.png

5. Kubeflow Pipelinesのデプロイ

次に、Kubeflow Pipelines をデプロイします。

  1. クラスター全体のリソースを適用:

    kubectl apply -k "github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref=1.8.1"
    
  2. パイプライン環境のデプロイ:

    kubectl apply -k "github.com/kubeflow/pipelines/manifests/kustomize/env/platform-agnostic-pns?ref=1.8.1"
    
  3. Podの起動確認:

    kubectl get pods -n kubeflow
    

    すべてのPodが Running になるまで待機します。これには数分かかります。
    スクリーンショット 2024-11-22 0.37.57.png

6. ポートフォワードでUIアクセス

以下のコマンドを実行して、ブラウザからアクセスできるようにします:

kubectl port-forward -n kubeflow svc/ml-pipeline-ui 8080:80

ブラウザで http://localhost:8080 にアクセスし、Kubeflow PipelinesのUIが表示されることを確認してください。
スクリーンショット 2024-11-22 0.39.39.png

停止方法

以下の手順でリソースを削除または停止できます:
すべてのリソースを削除(完全停止)

現在のリソースをすべて削除します:

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の実験や学習を進めてみてください!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?