Kubernetes Web UI 설치 및 계정 생성 로그인

Cloud/Kubernetes / /
728x90


 

쿠버네티스 설치 후 web UI로 리소스를 볼 수 있도록 할 수 있다.

kubectl apply -f https://raw.githubusercontent.com/

kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml

 

다음과 같이 yaml 파일을 다운로드하여 Dashboard DeploymentService 등을 배포한다.

kubernetes-dashboard 라는 namspace로 배포가 되며 배포된 내용을 조회해 보면 다음과 같다

kubectl get all -n kubernetes-dashboard

NAME                                             READY   STATUS    RESTARTS   AGE

pod/dashboard-metrics-scraper-856586f554-5fgm6   1/1     Running   1          2d

pod/kubernetes-dashboard-67484c44f6-25rbs        1/1     Running   2          2d

 

NAME                                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE

service/dashboard-metrics-scraper   ClusterIP   10.98.133.105   <none>        8000/TCP   2d

service/kubernetes-dashboard        ClusterIP   10.101.35.20    <none>        443/TCP    2d

 

NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE

deployment.apps/dashboard-metrics-scraper   1/1     1            1           2d

deployment.apps/kubernetes-dashboard        1/1     1            1           2d

 

NAME                                                   DESIRED   CURRENT   READY   AGE

replicaset.apps/dashboard-metrics-scraper-856586f554   1         1         1       2d

replicaset.apps/kubernetes-dashboard-67484c44f6        1         1         1       2d

 

해당 리소스 내역과 metric정보를 수집하는 podDashboard를 구축하는 Pod 생성되고 8000 port로 접근할 수 있는 Service가 생성되는 것을 확인할 수 있다.

 

이후 해당 Dashboard에 접근하기 위해서

kubectl proxy &

 

명령어를 통해 해당 Web을 활성화 하고

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

Dashboard에 접속하면 다음과 같은 화면을 출력한다.


 

admin 계정을 생성한 후에 토큰을 생성하여 접근하여야 하는데 admin 계정의 생성의 예는 다음과 같다.

apiVersionv1

kindServiceAccount

metadata:

  nameadmin-user

  namespacekubernetes-dashboard

---

apiVersionrbac.authorization.k8s.io/v1

kindClusterRoleBinding

metadata:

  nameadmin-user

roleRef:

  apiGrouprbac.authorization.k8s.io

  kindClusterRole

  namecluster-admin

subjects:

kindServiceAccount

  nameadmin-user

  namespacekubernetes-dashboard

 

kubectl create -f admin_user.yaml

 

해당 유저 등록 후 token 생성

kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"

 

eyJhbGciOiJSUzI1NiIsImtpZCI6IjVqRjNLdGt1SXRyelpfVV9TNzMwV0p1QWx6a2NLcUl4S3ZUNH

JwdmVNREkifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pb

y9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV

0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWx3cWJ6I

iwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWl

uLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiO

iIzZGUzY2I4ZC1lZGJiLTQxYTMtOTE0Yy01ZWJmMzExMTY1MTEiLCJzdWIiOiJzeXN0ZW06c2Vydml

jZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.fMKCEiZzem-

O94A4gtNDNxjGMoJAh2ePJgQGSL6WqhjcVycynPr3Y-

DIJuVmuQqlXd5CBdv36ufejdVWDjhB3MdRweVfWpvdrWncZ3FBnHpUtWmhP7XA2go2-

eY2pM24NBYR3y8bKaDP5X8LxuFSWnmBn7TSpxFiVddFOsz-

toER7OWLnksgi66dVrZthA281POgHyQjF3ZBnYYpexJiLGKSfmWy6pz8IFmv3ysRydnwE0kFkoiXZ5

wpbc_KHvGIbcFR4RdM4C8Jjd7gLk7NdeBHNIEZs_UZwqrz-

0bMkcs2Wx1wwfPn_9Q6p_FYi9onMFiQgwAWiOSbqWfeG7aO-Q

 

해당 token을 입력하여 다음과 같은 UI를 만날 수 있다.

 


 

해당 admin 계정은 다음과 같이 삭제할 수 있다.

kubectl -n kubernetes-dashboard delete serviceaccount admin-user

kubectl -n kubernetes-dashboard delete clusterrolebinding admin-user

 

출처

https://kubernetes.io/ko/docs/tasks/access-application-cluster/web-ui-dashboard/

https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md

 

728x90

'Cloud > Kubernetes' 카테고리의 다른 글

kubernetes helm chart 이용하기  (0) 2021.08.06
Krew 설치 및 사용법  (0) 2021.07.05
Kubernetes 기본 개념  (0) 2021.07.05
Kubernetes 설치와 runtime 이슈  (0) 2021.06.30
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기