Kubernetes DashBord를 배포하고 로그인해 봅니다.

6122 단어 kubectlkubernetes

소개



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

Kubernetes dashBoard에 로그인해 보세요.



이제 대시보드에 액세스해 보겠습니다.
다음 명령을 사용하여 대시보드에 프록시 서버를 시작하고 브라우저에서 액세스합니다.
$ kubectl proxy

응. . . 뭔가 사인 필요?


그러고 보니, 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 그리고 복합해 줄 필요가 있습니다.

이 녀석을 입력하면 ...

안전하게 로그인할 수 있었습니다.
제대로 자원도 볼 수 있을 것 같네요.


마지막으로



우선 로그인을 할 수 있었지만, 제대로 권한이 있는 role를 작성할 필요가 있을 것 같습니다.

좋은 웹페이지 즐겨찾기