0
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?

More than 3 years have passed since last update.

Azure に Kubeflow をデプロイする

Posted at

Azure の AKS (Azure Kubernetes Service) で Kubeflow をデプロイするメモです。AKSは、Kubeflowのマニュフェストそのまま動きますので、メモを残すほどでもないのかもしれませんが、何かの役に立つかもしれないので残しておきます。

Kubeflowデプロイのためのコマンドを準備

Kubeflowデプロイに使用するコマンドは以下の3つです。

az
Azureをコントロールするためのコマンドです。今回はkubectlがAKSに接続するためのクレデンシャル取得などに使用しています。
kubectl
Kubernetesをコントロールするためのコマンドです。AKSによって取得した~/.kube/configを使ってAKSにアクセスします。
kfctl
Kubeflowをコントロールするためのコマンドです。
今回は Kubeflow のデプロイに Azure Cloud Shell を使用します。Windows10 を使用している人は、Windows Terminal から、Azure Cloud Shell (Bash) の使用をお勧めします。

Azure Cloud Shell には、az, kubectl コマンドはインストール済ですので、kfctl だけ以下のページから取得してインストールします。
https://github.com/kubeflow/kfctl/releases/

AzureCloudShell
$ mkdir -p ~/bundle/bin
$ curl -OL https://github.com/kubeflow/kfctl/releases/download/v1.1.0/kfctl_v1.1.0-0-g9a3621e_linux.tar.gz
$ tar xvfz kfctl_v1.1.0-0-g9a3621e_linux.tar.gz
$ mv kfctl ~/bundle/bin/

AKSを作成する

ポータルから作成してみます。今回はノードに Standard_D4S_v3 を2台としました。(Standard_DS2_v2 を3台でもデプロイでできましたが、実験フェーズでは、まとったメモリやストレージを使いたいこともあると思うので、大きめのノードを選んだ方が良いかもしれません)
Screen Shot 2020-08-16 at 10.17.14.png

AKSが作成されたら、作成したAKSのクレデンシャルを取得します。

AzureCloudShell
$ az aks get-credentials -n kentacl -g kentakf-rg

これで kubectl からコントロールできるようになりましたので、ノードを確認してみます。

AzureCloudShell
$ kubectl get node
NAME                                STATUS   ROLES   AGE   VERSION
aks-agentpool-22403156-vmss000000   Ready    agent   11m   v1.16.13
aks-agentpool-22403156-vmss000001   Ready    agent   11m   v1.16.13

Kubeflowのデプロイ

Kubeflowのデプロイに入ります。まずは、作業用のディレクトリを作成します。

AzureCloudShell
$ mkdir kf11

kfctlでGithubに置いてあるKubeflow 1.1のマニフェストをApplyすることによりデプロイを実行します。
作業用のディレクトリ移動して、

AzureCloudShell
$ cd kf11
$ pwd
/home/kenta/kf11

kfctlでデプロイします。

AzureCloudShell
$ kfctl apply -V -f "https://raw.githubusercontent.com/kubeflow/manifests/v1.1-branch/kfdef/kfctl_k8s_istio.v1.0.2.yaml"

デプロイが完了したら以下のようになりPodが立ち上がります。

AzureCloudShell
$ kubectl get pods --all-namespaces -o wide
NAMESPACE         NAME                                                           READY   STATUS      RESTARTS   AGE     IP            NODE                                NOMINATED NODE   READINESS GATES
cert-manager      cert-manager-cainjector-c578b68fc-blclk                        1/1     Running     0          174m    10.244.1.13   aks-agentpool-22403156-vmss000001   <none>           <none>
cert-manager      cert-manager-fcc6cd946-9tf9s                                   1/1     Running     0          174m    10.244.0.18   aks-agentpool-22403156-vmss000000   <none>           <none>
cert-manager      cert-manager-webhook-657b94c676-n4xrb                          1/1     Running     1          174m    10.244.1.14   aks-agentpool-22403156-vmss000001   <none>           <none>
istio-system      cluster-local-gateway-78f6cbff8d-8p78r                         1/1     Running     0          175m    10.244.0.13   aks-agentpool-22403156-vmss000000   <none>           <none>
istio-system      grafana-68bcfd88b6-lmfv6                                       1/1     Running     0          175m    10.244.1.5    aks-agentpool-22403156-vmss000001   <none>           <none>
istio-system      istio-citadel-7dd6877d4d-fj4nk                                 1/1     Running     0          175m    10.244.1.6    aks-agentpool-22403156-vmss000001   <none>           <none>
istio-system      istio-cleanup-secrets-1.1.6-74hfs                              0/1     Completed   0          175m    10.244.1.12   aks-agentpool-22403156-vmss000001   <none>           <none>
istio-system      istio-egressgateway-7c888bd9b9-fvrbh                           1/1     Running     0          175m    10.244.1.7    aks-agentpool-22403156-vmss000001   <none>           <none>
istio-system      istio-egressgateway-7c888bd9b9-mm28x                           1/1     Running     0          172m    10.244.0.33   aks-agentpool-22403156-vmss000000   <none>           <none>
istio-system      istio-galley-5bc58d7c89-gqkj7                                  1/1     Running     0          175m    10.244.0.19   aks-agentpool-22403156-vmss000000   <none>           <none>
istio-system      istio-grafana-post-install-1.1.6-dk4zh                         0/1     Completed   0          175m    10.244.1.11   aks-agentpool-22403156-vmss000001   <none>           <none>
istio-system      istio-ingressgateway-866fb99878-qv2x5                          1/1     Running     0          175m    10.244.0.9    aks-agentpool-22403156-vmss000000   <none>           <none>
istio-system      istio-pilot-67f9bd57b-7x7kp                                    2/2     Running     0          175m    10.244.0.10   aks-agentpool-22403156-vmss000000   <none>           <none>
istio-system      istio-policy-749ff546dd-vt6r6                                  2/2     Running     3          175m    10.244.0.11   aks-agentpool-22403156-vmss000000   <none>           <none>
istio-system      istio-security-post-install-1.1.6-56x76                        0/1     Completed   0          175m    10.244.1.10   aks-agentpool-22403156-vmss000001   <none>           <none>
istio-system      istio-sidecar-injector-cc5ddbc7-75vbp                          1/1     Running     0          175m    10.244.0.17   aks-agentpool-22403156-vmss000000   <none>           <none>
istio-system      istio-telemetry-6f6d8db656-frz7b                               2/2     Running     2          175m    10.244.1.8    aks-agentpool-22403156-vmss000001   <none>           <none>
istio-system      istio-tracing-84cbc6bc8-qp8hp                                  1/1     Running     0          175m    10.244.0.12   aks-agentpool-22403156-vmss000000   <none>           <none>
istio-system      kfserving-ingressgateway-6b469d64d-7lptq                       1/1     Running     0          175m    10.244.0.14   aks-agentpool-22403156-vmss000000   <none>           <none>
istio-system      kfserving-ingressgateway-6b469d64d-qcl4p                       1/1     Running     0          172m    10.244.1.40   aks-agentpool-22403156-vmss000001   <none>           <none>
istio-system      kiali-7879b57b46-pcdpx                                         1/1     Running     0          175m    10.244.1.9    aks-agentpool-22403156-vmss000001   <none>           <none>
istio-system      prometheus-744f885d74-2gm9x                                    1/1     Running     0          175m    10.244.0.16   aks-agentpool-22403156-vmss000000   <none>           <none>
knative-serving   activator-58595c998d-mb77d                                     2/2     Running     0          173m    10.244.1.24   aks-agentpool-22403156-vmss000001   <none>           <none>
knative-serving   autoscaler-7ffb4cf7d7-7w7sw                                    2/2     Running     2          173m    10.244.0.28   aks-agentpool-22403156-vmss000000   <none>           <none>
knative-serving   autoscaler-hpa-686b99f459-tnggg                                1/1     Running     0          173m    10.244.0.27   aks-agentpool-22403156-vmss000000   <none>           <none>
knative-serving   controller-c6d7f946-drxwf                                      1/1     Running     0          173m    10.244.0.26   aks-agentpool-22403156-vmss000000   <none>           <none>
knative-serving   networking-istio-ff8674ddf-brkgd                               1/1     Running     0          173m    10.244.1.25   aks-agentpool-22403156-vmss000001   <none>           <none>
knative-serving   webhook-6d99c5dbbf-x9zgd                                       1/1     Running     0          173m    10.244.0.29   aks-agentpool-22403156-vmss000000   <none>           <none>
kube-system       coredns-869cb84759-c67ht                                       1/1     Running     0          3h11m   10.244.1.3    aks-agentpool-22403156-vmss000001   <none>           <none>
kube-system       coredns-869cb84759-jvjzm                                       1/1     Running     0          3h13m   10.244.0.2    aks-agentpool-22403156-vmss000000   <none>           <none>
kube-system       coredns-autoscaler-5b867494f-tv8bw                             1/1     Running     0          3h13m   10.244.0.6    aks-agentpool-22403156-vmss000000   <none>           <none>
kube-system       dashboard-metrics-scraper-566c858889-2pwjb                     1/1     Running     0          3h13m   10.244.0.7    aks-agentpool-22403156-vmss000000   <none>           <none>
kube-system       kube-proxy-m7dwp                                               1/1     Running     0          3h11m   10.240.0.5    aks-agentpool-22403156-vmss000001   <none>           <none>
kube-system       kube-proxy-nnclh                                               1/1     Running     0          3h11m   10.240.0.4    aks-agentpool-22403156-vmss000000   <none>           <none>
kube-system       kubernetes-dashboard-7f7d6bbd7f-ld9vj                          1/1     Running     0          3h13m   10.244.0.4    aks-agentpool-22403156-vmss000000   <none>           <none>
kube-system       metrics-server-6cd7558856-zbczc                                1/1     Running     0          3h13m   10.244.0.3    aks-agentpool-22403156-vmss000000   <none>           <none>
kube-system       omsagent-jbczq                                                 1/1     Running     1          3h11m   10.244.1.2    aks-agentpool-22403156-vmss000001   <none>           <none>
kube-system       omsagent-rcjwq                                                 1/1     Running     1          3h11m   10.244.0.5    aks-agentpool-22403156-vmss000000   <none>           <none>
kube-system       omsagent-rs-7fd48788c5-247pw                                   1/1     Running     1          3h13m   10.244.1.4    aks-agentpool-22403156-vmss000001   <none>           <none>
kube-system       tunnelfront-748b54cdb-qnkcc                                    2/2     Running     0          3h13m   10.244.0.8    aks-agentpool-22403156-vmss000000   <none>           <none>
kubeflow          admission-webhook-bootstrap-stateful-set-0                     1/1     Running     0          174m    10.244.1.17   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          admission-webhook-deployment-59bc556b94-5w2vx                  1/1     Running     0          173m    10.244.0.24   aks-agentpool-22403156-vmss000000   <none>           <none>
kubeflow          application-controller-stateful-set-0                          1/1     Running     0          175m    10.244.0.15   aks-agentpool-22403156-vmss000000   <none>           <none>
kubeflow          argo-ui-5f845464d7-2zgsv                                       1/1     Running     0          174m    10.244.1.15   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          centraldashboard-d5c6d6bf-tqqtk                                1/1     Running     0          174m    10.244.1.18   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          jupyter-web-app-deployment-544b7d5684-mmtbd                    1/1     Running     0          173m    10.244.1.19   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          katib-controller-6b87947df8-njhx6                              1/1     Running     1          172m    10.244.1.28   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          katib-db-manager-54b64f99b-5bbdw                               1/1     Running     0          172m    10.244.1.29   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          katib-mysql-74747879d7-n68p5                                   1/1     Running     0          172m    10.244.0.35   aks-agentpool-22403156-vmss000000   <none>           <none>
kubeflow          katib-ui-76f84754b6-qcnsb                                      1/1     Running     0          172m    10.244.1.30   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          kfserving-controller-manager-0                                 2/2     Running     1          173m    10.244.1.27   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          metacontroller-0                                               1/1     Running     0          174m    10.244.0.20   aks-agentpool-22403156-vmss000000   <none>           <none>
kubeflow          metadata-db-79d6cf9d94-slc4l                                   1/1     Running     0          173m    10.244.0.34   aks-agentpool-22403156-vmss000000   <none>           <none>
kubeflow          metadata-deployment-5dd4c9d4cf-mqkp9                           1/1     Running     0          173m    10.244.1.22   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          metadata-envoy-deployment-5b9f9466d9-p6j4w                     1/1     Running     0          173m    10.244.1.21   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          metadata-grpc-deployment-74f69954dc-vls7q                      1/1     Running     5          173m    10.244.0.22   aks-agentpool-22403156-vmss000000   <none>           <none>
kubeflow          metadata-ui-8968fc7d9-dqj4x                                    1/1     Running     0          173m    10.244.0.23   aks-agentpool-22403156-vmss000000   <none>           <none>
kubeflow          minio-6b88d6499f-f5d49                                         1/1     Running     0          172m    10.244.1.43   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          ml-pipeline-698bcdd747-x67mq                                   1/1     Running     0          172m    10.244.1.31   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          ml-pipeline-ml-pipeline-visualizationserver-675656df79-tgjwm   1/1     Running     0          172m    10.244.1.35   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          ml-pipeline-persistenceagent-7785884886-gqwwm                  1/1     Running     1          172m    10.244.1.32   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          ml-pipeline-scheduledworkflow-7b4cb5d959-cxtlp                 1/1     Running     0          172m    10.244.0.32   aks-agentpool-22403156-vmss000000   <none>           <none>
kubeflow          ml-pipeline-ui-5fbd94b9fb-rrfgn                                1/1     Running     0          172m    10.244.1.33   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          ml-pipeline-viewer-controller-deployment-69fccfff8c-f86bc      1/1     Running     0          172m    10.244.1.34   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          mysql-7994454666-z6c6c                                         1/1     Running     0          172m    10.244.1.44   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          notebook-controller-deployment-576589db9d-77ftt                1/1     Running     0          173m    10.244.0.25   aks-agentpool-22403156-vmss000000   <none>           <none>
kubeflow          profiles-deployment-874649f89-mzjjs                            2/2     Running     0          172m    10.244.1.36   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          pytorch-operator-666dd4cd49-psfxz                              1/1     Running     0          173m    10.244.1.23   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          seldon-controller-manager-5d96986d47-w69c9                     1/1     Running     0          172m    10.244.1.38   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          spark-operatorcrd-cleanup-db5nj                                0/2     Completed   0          173m    10.244.1.20   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          spark-operatorsparkoperator-7c484c6859-qv8lz                   1/1     Running     0          173m    10.244.0.21   aks-agentpool-22403156-vmss000000   <none>           <none>
kubeflow          spartakus-volunteer-7465bcbdc-94tmr                            1/1     Running     0          173m    10.244.0.30   aks-agentpool-22403156-vmss000000   <none>           <none>
kubeflow          tensorboard-6549cd78c9-xkbdr                                   1/1     Running     0          173m    10.244.0.31   aks-agentpool-22403156-vmss000000   <none>           <none>
kubeflow          tf-job-operator-7574b968b5-6pgml                               1/1     Running     0          173m    10.244.1.26   aks-agentpool-22403156-vmss000001   <none>           <none>
kubeflow          workflow-controller-6db95548dd-lcjjs                           1/1     Running     0          174m    10.244.1.16   aks-agentpool-22403156-vmss000001   <none>           <none>

Kubeflowにアクセスする

Webブラウザが使えるローカルコンピュータからkubectlのポートフォワードを使ってKubeflowにアクセスしてみます。まずは、AKSのクレデンシャルを取得するためにも、以下のURLを参考にAzure CLIをインストールします。

次にkubectlをインストールします。以下のコマンドにより、Azure CLIからkubectlをインストールすることもできます。

Local
az aks install-cli

kubectlのポートフォワードを実行します。これにより、ローカルコンピュータの8080ポートからKubeflowにアクセスできます。

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

Webブラウザを立ち上げて以下のURLにアクセスします。

Screen Shot 2020-08-16 at 13.51.50.png

名前空間を設定します。この名前空間は、Kubernetesの名前空間にもなります。

Screen Shot 2020-08-16 at 13.52.45.png

Screen Shot 2020-08-16 at 13.53.07.png

こでで Kubeflow のデプロイは完了です。次は Kubeflow の Notebook Server を作成してみます。

Notebook Server を作成する

Notebookを作成してみます。左上のメニューからNotebook Serversを選択します。

Screen Shot 2020-08-16 at 13.53.37.png

NEW SERVERからNotebookのサーバを作成します。

Screen Shot 2020-08-16 at 13.53.54.png

Nameは、KubernetesのPodの名前にもなります。ここでは、Tensorflow 2.1 CPUのイメージを使用しています。

Screen Shot 2020-08-16 at 13.54.40.png

作成されました。(表示されるのに時間がかかります)

Screen Shot 2020-08-16 at 14.21.42.png

kubectlのコマンドでもNotebookが立ち上がっている事を確認できます。

AzureCloudShell
$ kubectl get pods -n kubeflow-kenta -o wide
NAME               READY   STATUS    RESTARTS   AGE   IP            NODE                                NOMINATED NODE   READINESS GATES
kenta-notebook-0   2/2     Running   0          30m   10.244.0.38   aks-agentpool-22403156-vmss000000   <none>           <none>

Pythonで実験フェーズのコードを書く事ができます。

Screen Shot 2020-08-16 at 14.23.05.png

Kubeflowのアンインストール

KubeflowをアンインストールするにはAzure Cloud Shellで作成した作業ディレクトリで、以下のコマンドを使用します。

作業用ディレクトリに移動して、

AzureCloudShell
$ cd kf11/
$ pwd
/home/kenta/kf11

kfctlでアンインストールします。

AzureCloudShell
$ kfctl delete -f kfctl_k8s_istio.v1.0.2.yaml

アンインストールの経過は、別のターミナルやコマンドウインドウで、以下のコマンドから確認する事ができます。

AzureCloudShell
$ kubectl get pods --all-namespaces -o wide -w

最後に

これでメモは終了です。
今回は、以下のドキュメントを参考にしました。

ではまたー。

0
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
0
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?