## はじめに
awesome-kfp
というライブラリを現在作成中です。よければStarまたはContributionお願いいたします🙏
Kubeflowとは
KubeflowとはMLOpsを実現するためのKubernate上で動作するツール群のこと。
詳しくはこちらの記事にまとめてあります。
Deploy Kubeflow pipeline on Linux
基本的にはKubernatesはクラウド上で運用することが多いと思いますが、今回は実験としてローカル上に仮想Kubernatesクラスターを立ち上げてその上にKubeflowをデプロイしていきたいと思います。
公式のチュートリアルに乗っ取った方法でやっていきたいと思います。
公式ではローカルに仮想クラスターを実現するためにkind(Kubernates in Docker)やk3sというKubernatesよりもライトなローカルやエッジ用ツールを用いたチュートリアルが紹介されています。
今回はkindを使ってDeployしていきます。
kindについては以下参照
Install kind
以下のコマンドでkindをインストールします。YOUR_KIND_DIRECTORYには適宜PATHの通っているディレクトリに変更してください。
kindのバージョンはインストールしたいバージョンを指定してください。2021/7月現在最新はv0.11.1
です。
curl -Lo ./kind https://kind.sigs.k8s.io/dl/{KIND_VERSION}/kind-linux-amd64 && \
chmod +x ./kind && \
mv ./kind /{YOUR_KIND_DIRECTORY}/kind
Deploy Kubeflow on kind cluster
まず以下のコマンドでKindのクラスターを作成できます。
kind create cluster
クラスターが無事作成できたらKubeflowをでプロします。
以下のコマンドでデプロイします。(今回はバージョン1.6.0を使用)
# env/platform-agnostic-pns hasn't been publically released, so you will install it from master
export PIPELINE_VERSION=1.6.0
kubectl apply -k "github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref=$PIPELINE_VERSION"
kubectl wait --for condition=established --timeout=60s crd/applications.app.k8s.io
kubectl apply -k "github.com/kubeflow/pipelines/manifests/kustomize/env/platform-agnostic-pns?ref=$PIPELINE_VERSION"
以下のコマンドでKubeflowのUIをlocalhostにポートフォワードしてデプロイを確認します(数分から数十分かかりますので気長に待ちましょう。)
kubectl port-forward -n kubeflow svc/ml-pipeline-ui 8080:80
# then open http://localhost:8080/
SSH tunnelを使用してリモートサーバ上のKubeflowダッシュボードにアクセスするには
ssh -L 8080:127.0.0.1:8080 {USER}@{HOST_NAME} -p 22 -i ~/.ssh/id_rsa