【Docker for Windows】Kubernetes起動とダッシュボード作成まで

「Docker for Windows」でKubernetesを動かしたのでまとめました。

Kubernetesを動かすためには事前に「Docker for Windows」のインストールが必要となるので実施しておきます。

また、今回の動作確認は「Windows10」で実施しています。

【Kubernetes】起動からダッシュボード作成までの手順

「Docker for Windows」をインストールしている状態で、デスクトップ右下のDockerダッシュボードを開きます。

「歯車」マークをクリックし、設定(Setting)から「Kubernetes」を選択し、「Enable Kubernetes」にチェックを入れ、「Apply&Restart」をクリックし起動します。

「Kubernetes」起動後の設定

「パワーシェル」もしくは「コマンドプロンプト」を立ち上げ、コンテキストの状態を確認します。

PS C:> kubectl config get-contexts
CURRENT   NAME                 CLUSTER          AUTHINFO         NAMESPACE
*         docker-desktop       docker-desktop   docker-desktop
          docker-for-desktop   docker-desktop   docker-desktop
PS C:>

使用するクラスタを「docker-for-desktop」に切り替えます。

PS C:> kubectl config use-context docker-for-desktop
Switched to context "docker-for-desktop".
PS C:>

再度コンテキストの状態で「docker-for-desktop」に切り替わっていることを確認します。

PS C:> kubectl config get-contexts
CURRENT   NAME                 CLUSTER          AUTHINFO         NAMESPACE
          docker-desktop       docker-desktop   docker-desktop
*         docker-for-desktop   docker-desktop   docker-desktop

起動しているマスターノードの確認をします。

PS C:> kubectl get nodes
NAME             STATUS   ROLES    AGE   VERSION
docker-desktop   Ready    master   10d   v1.15.5

以下コマンドで現在動作しているPODを確認します。

PS C:> kubectl get po --all-namespaces
NAMESPACE              NAME                                         READY   STATUS    RESTARTS   AGE
docker                 compose-7b7c5cbbcc-mkqxj                     1/1     Running   0          10d
docker                 compose-api-dbbf7c5db-5d84j                  1/1     Running   0          10d
kube-system            coredns-5c98db65d4-j2n8d                     1/1     Running   1          10d
kube-system            coredns-5c98db65d4-wz5dh                     1/1     Running   1          10d
kube-system            etcd-docker-desktop                          1/1     Running   0          10d
kube-system            kube-apiserver-docker-desktop                1/1     Running   0          10d
kube-system            kube-controller-manager-docker-desktop       1/1     Running   0          10d
kube-system            kube-proxy-vhcrk                             1/1     Running   0          10d
kube-system            kube-scheduler-docker-desktop                1/1     Running   0          10d
kubernetes-dashboard   dashboard-metrics-scraper-7f5767668b-dzsdp   1/1     Running   0          10d
kubernetes-dashboard   kubernetes-dashboard-57b4bcc994-ns8wc        1/1     Running   0          10d

Kubernetes-dashboardのデプロイを実行

kubernetes clusterの管理ができるdashboardをデプロイ
設定ファイルは以下のものを使用
https://github.com/kubernetes/dashboard
記載されているコマンドを実行

ダッシュボードを展開するには、次のコマンドを実行します。

PS C:> kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml
namespace/kubernetes-dashboard unchanged
serviceaccount/kubernetes-dashboard unchanged
service/kubernetes-dashboard unchanged
secret/kubernetes-dashboard-certs unchanged
secret/kubernetes-dashboard-csrf configured
Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
secret/kubernetes-dashboard-key-holder configured
configmap/kubernetes-dashboard-settings unchanged
role.rbac.authorization.k8s.io/kubernetes-dashboard unchanged
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard unchanged
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard unchanged
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard unchanged
deployment.apps/kubernetes-dashboard unchanged
service/dashboard-metrics-scraper unchanged
deployment.apps/dashboard-metrics-scraper unchanged
PS C:>

Kubernetesへログインするための「トークン」の取得

ログインに使用できるトークンを取得する必要があります。
次のコマンドで実行します。

PS C:> kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | sls admin-user | ForEach-Object { $_ -Split 's+' } | Select -First 1)
Name:         default-token-df7f4
Namespace:    kubernetes-dashboard
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: default
              kubernetes.io/service-account.uid: 899fb3b5-2b9d-4b97-90fd-c808046d31a6

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1025 bytes
namespace:  20 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkZWZhdWx0LXRva2VuLWRmN2Y0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImRlZmF1bHQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI4OTlmYjNiNS0yYjlkLTRiOTctOTBmZC1jODA4MDQ2ZDMxYTYiLCJzdWIiOiJzeXN0ZW06c2wydmljZdFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6ZGVmYXVsdCJ9.igeXfcnJNy5TEJt8T20udmxfwQw5oypnRUg1ch_LBAzNtHrvvPi4H4XeO6EDNszIO2oFuHNHbBdRIlPfgBVAC0b3Z-iO2Gfiv7nwb6GjeRGO3C6TAlloDEZHmAhB0dZqKNAVYlybE2OMO99aJG7ikh3skHvZsxdUemoUgkI3ugySXKIoi_-OV95kdZdmL4ocqJCJOGs-VRkKElyd7zpR69Vg-RK87oLW55bDPGRx4OLOCRruxKojr1s244e_wUs5YKJw9cshxLfzVTAWzk0a1FInZXaHd-V7ExyqPOR_tMRwtUp_N0xmp2G0gFH24SiIFaWJ2xMbWAKHEXEkvjgi0w

14行目で「token:」の文字列が表示されるので、コピーをしておきます。

Kubernetesダッシュボード起動とアクセス

最後に以下のコマンドでKubernetesのダッシュボードを起動します。

PS C:> kubectl proxy
Starting to serve on 127.0.0.1:8001

Kubernetesを起動した後、下記コマンドにてブラウザからアクセスを実施します。

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

アクセスするとKubernetesのログイン画面が表示されるので、「トークン」を選択し、先ほど取得した「token」の文字列を貼り付けサインインをします。

サインインが成功するとKubernetesのトップ画面が表示されます。
Kubernetes起動からダッシュボードアクセスまでの流れは以上となります。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!