본문 바로가기

가상화/Kubernetes

[kubernetes] 웹 UI(대시보드)

반응형

개요

대시보드는 웹 기반 쿠버네티스 유저 인터페이스이다. 대시보드를 통해 컨테이너화 된 애플리케이션을 쿠버네티스 클러스터에 배포할 수 있고, 컨테이너화 된 애플리케이션을 트러블슈팅 할 수 있으며, 클러스터 리소스들을 관리할 수 있다. 대시보드를 통해 클러스터에서 동작중인 애플리케이션의 정보를 볼 수 있고, 개별적인 쿠버네티스 리소스들을(예를 들면 디플로이먼트, 잡, 데몬셋 등) 생성하거나 수정할 수 있다. 예를 들면, 디플로이먼트를 스케일하거나, 롤링 업데이트를 초기화하거나, 파드를 재시작하거나 또는 배포 마법사를 이용해 새로운 애플리케이션을 배포할 수 있다.

또한 대시보드는 클러스터 내 쿠버네티스 리소스들의 상태와 발생하는 모든 에러 정보를 제공한다.

구성환경

Kubernetes v1.17.4, dashboard v2.0.0-rc6

 

1. 대시보드 UI 배포

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml

2. 대시보드 UI 접근

 2.1 커맨드 라인 프록시 실행

shell> kubectl proxy
Starting to serve on 127.0.0.1:8001

 2.2 접속 URL

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

* UI는 커맨드가 실행된 머신에서 오직 접근 가능하다.

 - 초기 접속 화면

 

서비스 계정 생성 및 접속

Step 1) 서비스 계정 생성

shell> kubectl apply -f dashboard-adminuser.yaml

 - dashboard-adminuser.yaml 샘플

apiVersion: v1 
kind: ServiceAccount 
metadata: 
  name: admin-user 
  namespace: kubernetes-dashboard

Step 2) 롤 매핑(Role mapping)

shell> kubectl apply -f rollbinding.yaml

 - rollbinding.yaml 샘플

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard

Step 3) 서비스계정의 토큰(tocken) 확인 -  파란색 글씨

shell> kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
Name:         admin-user-token-4qwzh
Namespace:    kubernetes-dashboard
Labels:       
Annotations:  kubernetes.io/service-account.name: admin-user
              kubernetes.io/service-account.uid: 53eef793-501f-4542-b3ce-85e6e80acd9a

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1025 bytes
namespace:  20 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6ImVQTHZaeU5NdDVUY0FWQ0NXWHZQYkNMNE5RcGI5Zjk1amhzeEFJUTFPMVEifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLTRxd3poIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI1M2VlZjc5My01MDFmLTQ1NDItYjNjZS04NWU2ZTgwYWNkOWEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.qv8-DgcP3IIs-ttoxt2bb4wE875PhWNXiCi6uMqJXet4GC_C1xQUtYETP0213-f1dxCNfC4cENaCB6ae5u7BO0FjRfZXRp6FkwzEX2kJLgpKmHJBBaWxzfAe0hg9rzPkNMzbuxyUMhGLNEzSglpux8NsxR9eQa3Ugw4ggyGyXJyrczKVFdsbOE31hu-QUJkIrh-2dYcHuG4rwB9kexXG5xnwJm6eL3VyioSi9FD1DubRLrG0RLxd4PNkuXby2QUCerLzOoCJm2-hCTyxb9d8j2Dm4MgY9CiIymUoOhViVZ7KkFRWz_JTus2_RNC6Kp2aHSVm0W1au7pZuhGRegbMmw
shell>

Step 4) 토큰을 이용하여 접속(토큰 부분을 복사하여 붙여넣기)

Step 5) 웰컴 뷰(초기 클러스터 대시보드에 접근하면, 환영 페이지를 볼수 있다.)

 

참조 문서 

- 웹 UI 설치(대시보드 UI 배포) : 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

반응형