【3分でできる!】Docker Desktop for WindowsのKubernetesにダッシュボードをインストールする

KubernetesダッシュボードはKubernetesの情報を取得できるWebユーザーインターフェースのダッシュボードです。Kubernetes上のアプリケーションやKubernetesクラスタの管理、トラブルシューティングなどに利用できます。

この記事では、Docker Desktop for WindowsにKubernetesダッシュボードを設定する方法を紹介します。なお、Kubectlの実行はWSL for Ubuntu18.04から行っています。WSL for Ubuntu18.04からkubectlの操作を行う方法は、こちらの記事を参照してください。また、本記事の実行例は、Docker Desktop for Windowsのバージョン2.0.0.3 (Kubernetes 1.10.11)を利用しています。

KuernetesダッシュボードをKubernetesにデプロイする

Kubernetesダッシュボードは、Kubernetesにデプロイを行うことで利用できるようになります。kubectl applyコマンドを利用して、Kubernetesダッシュボードをデプロイします。はじめに現在のコンテキストを確認しておきましょう。

$ kubectl config get-contexts
CURRENT   NAME                 CLUSTER                      AUTHINFO             NAMESPACE
*         docker-for-desktop   docker-for-desktop-cluster   docker-for-desktop

デプロイ先が正しければ、Kunernetesダッシュボードのデプロイを実行します。以下のコマンドでは、2019年5月20日現在の最新版のダッシュボード(v1.10.1)がデプロイされます。最新のダッシュボードのリリース状況は、Kubernetesダッシュボードのリリースページ(https://github.com/kubernetes/dashboard/releases)を参照してください。

$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
secret/kubernetes-dashboard-certs created
serviceaccount/kubernetes-dashboard created
role.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
deployment.apps/kubernetes-dashboard created
service/kubernetes-dashboard created

Kubernetesダッシュボードがデプロイされたか確認をしてみます。

$ kubectl get deployment --namespace=kube-system -l k8s-app=kubernetes-dashboard
NAME                   DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
kubernetes-dashboard   1         1         1            1           8s

正常にデプロイされたようです。

kubectl proxyを実行する

ローカルホストからKubernetesダッシュボードにアクセスするため、kubectl proxyコマンドを実行してプロキシを起動します。

$ kubectl proxy
Starting to serve on 127.0.0.1:8001

コマンドは実行したままとなりプロンプトは帰ってきません。実行状態のままにしておいてください。

ブラウザでKubernetesダッシュボードにアクセスする

ブラウザでhttp://localhost:8001にアクセスしても、パスが記載されたJSONが表示されるだけです。Kubernetesダッシュボードにアクセスするには、以下のURLを利用します。

http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

ブラウザでKubernetesダッシュボードにアクセスすると、Kubeconfigの設定画面が表示されます。

ここではKubeconfigを選択してアクセスします。はじめにアクセストークンの設定を行います。

$ TOKEN=$(kubectl -n kube-system describe secret default| awk '$1=="token:"{print $2}')
$ kubectl config set-credentials docker-for-desktop --token="${TOKEN}"
User "docker-for-desktop" set.

トークンを設定したKubeconfigファイルはWLSのファイルシステム上にあります。Windowsからアクセスできるように、Kubeconfigファイルをコピーします。コピー先のパスは、利用する環境にあわせて任意の場所に修正してください。

$ cp ~/.kube/config /mnt/c/Users/<user>/.kube/config

“kubeconfigファイルを選択”をクリックして、kubeconfigファイルを指定します。kubeconfigファイルは、上記コマンドでコピーしたものになります。正常に設定できていれば、以下のようなダッシュボード画面が表示されます。

ダッシュボードのデプロイを削除する

ダッシュボードのデプロイを削除するには、kubectl deleteコマンドを利用します。

$ kubectl delete deployment --namespace=kube-system kubernetes-dashboard
deployment.extensions "kubernetes-dashboard" deleted

ダッシュボードのデプロイが削除されたかの確認をしてみましょう。

$ kubectl get deployment --namespace=kube-system -l k8s-app=kubernetes-dashboard
No resources found.

正常に削除され、デプロイのリソースが見えなくなりました。

さいごに

本記事では、Docker Desktop for WindowsにWSL for Ubuntu18.04からKubernetesダッシュボードをインストールする方法を紹介しました。WSLから設定する場合、Kubectlファイルのコピーが手間になります。PowerShellから実行する場合は、Kubectlファイルのコピーは不要になります。

GUIでの管理は一覧性やアイコンによる状態識別など、Kubernetesの情報を手早く把握するのに便利です。Kubernetesダッシュボードを上手に利用して、Kubernetes管理やトラブルシューティングで楽をしていきましょう。

スカイアーチ ファンタジー研究室

スカイアーチ ファンタジー研究室

投稿者プロフィール

石川 淳
スカイアーチネットワークスで、新しいサービスの企画を行っています。
元SIer、元スマフォ向けゲームインフラの経験を生かして、新しいサービスをリリースしていきます。現在企画中のサービスはこちら。
https://github.com/easydoggie
コメントを頂けると嬉しいです。

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.

ABOUTこの記事をかいた人

スカイアーチネットワークスで、新しいサービスの企画を行っています。 元SIer、元スマフォ向けゲームインフラの経験を生かして、新しいサービスをリリースしていきます。現在企画中のサービスはこちら。 https://github.com/easydoggie コメントを頂けると嬉しいです。