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.

Kubernetes DashBordをデプロイし、サインインしてみる

Posted at

はじめに

K8sの学習にて、DashBordのログイン方法に少し手間取ったのでメモを残しておきます。

環境

今回、KubernetesはDocker Desktop(mac)のKubernetes連携を使用してローカル上にデプロイしています。
バージョンは下記の通り。

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T21:16:14Z", GoVersion:"go1.16.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.7", GitCommit:"1dd5338295409edcfff11505e7bb246f0d325d15", GitTreeState:"clean", BuildDate:"2021-01-13T13:15:20Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}

KubeDashBordのデプロイ

以下を実行
実行後、新たにNamespaceが作成され、ダッシュボードに必要なリソースがデプロイされて行きます

$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
#上記の実行結果
namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard unchanged
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard unchanged
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created

とりあえずgetで確認↓ ちゃんと動いてそうですね。

$ kubectl get pod,deploy,svc,secret,cm,role -n kubernetes-dashboard 
#結果
NAME                                             READY   STATUS    RESTARTS   AGE
pod/dashboard-metrics-scraper-7b59f7d4df-6tg9d   1/1     Running   0          5m14s
pod/kubernetes-dashboard-74d688b6bc-7b5jp        1/1     Running   0          5m14s

NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/dashboard-metrics-scraper   1/1     1            1           5m14s
deployment.apps/kubernetes-dashboard        1/1     1            1           5m14s

NAME                                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
service/dashboard-metrics-scraper   ClusterIP   10.109.49.245    <none>        8000/TCP   5m14s
service/kubernetes-dashboard        ClusterIP   10.101.211.202   <none>        443/TCP    5m14s

NAME                                      TYPE                                  DATA   AGE
secret/default-token-w2lr4                kubernetes.io/service-account-token   3      5m14s
secret/kubernetes-dashboard-certs         Opaque                                0      5m14s
secret/kubernetes-dashboard-csrf          Opaque                                1      5m14s
secret/kubernetes-dashboard-key-holder    Opaque                                2      5m14s
secret/kubernetes-dashboard-token-k2scs   kubernetes.io/service-account-token   3      5m14s

NAME                                      DATA   AGE
configmap/kubernetes-dashboard-settings   0      5m14s

NAME                                                  CREATED AT
role.rbac.authorization.k8s.io/kubernetes-dashboard   2021-05-08T15:07:39Z

KubernetesdashBordへサインインしてみる

ではダッシュボードにアクセスしてみます。
以下コマンドでダッシュボードへのプロキシサーバを立ち上げ、ブラウザからアクセスします。

$ kubectl proxy

ん。。。なんかサイン必要?
スクリーンショット 2021-05-09 0.19.24.png

そういえば、secretにkubernetes-dashboard-token-k2scsなるものがあったような。。(上記のkubect get ...で確認しています。)
一度中身を確認してみます。

kubectl describe secret kubernetes-dashboard-token-k2scs -n kubernetes-dashboard 
#結果
Name:         kubernetes-dashboard-token-k2scs
Namespace:    kubernetes-dashboard
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: kubernetes-dashboard
              kubernetes.io/service-account.uid: 5c9c0022-f970-430b-8cf8-d9b4cb59ea1a

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1066 bytes
namespace:  20 bytes
token:      /*ここにトークンが表示されます*/

何かトークンらしきものがありました。
ちなみに、kubectl get secret kubernetes-dashboard-token-k2scs -n kubernetes-dashboard -o yaml
でもtokenは取得できますが、echo /*取得したtoken*/ | base64 -Dで複合してあげる必要があります。

こいつを入力してみると、、、
スクリーンショット 2021-05-09 0.41.33.png
無事ログインできました。
ちゃんとリソースも見れてそうですね。
スクリーンショット 2021-05-09 0.41.42.png

最後に

とりあえずサインインはできましたが、きちんと権限の絞ったroleを作成する必要がありそうです。

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?