cloud&platform

Kubernetes Dashboard 설치

Starwards 2020. 12. 1. 15:26

※ 설치 버전 : 1.11.3 기준

 

웹 기반 kubernetes 사용자 인터페이스 제공.

 

Dashboard를 사용하여 Kubernetes 클러스터에 컨테이너 화 된 응용 프로그램을 배포하고, 배포된 응용 프로그램의 문제를 해결하며, 수행하는 리소스와 함께 클러스터 자체를 관리할 수 ​​있다.

Dashboard를 사용하여 클러스터에서 실행 중인 응용 프로그램의 상태를 쉽게 확인 가능하며, 개별 Kubernetes 자원 (예 : 배포, 작업, DaemonSets 등)을 만들거나 수정할 수 있다.

예를 들어 배포 마법사를 사용하여 배포를 확장하거나, 롤링 업데이트를 시작하거나, 포드를 다시 시작하거나, 새 응용 프로그램을 배포할 수 있다.

또한, Dashboard는 클러스터의 리소스 상태 및 발생한 오류에 대한 정보도 제공한다.

1. 설치

# kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

Dashboard는 kubernetes 설치 시 기본 옵션이 아니기 때문에 위와 같이 설치한다.


 

2. Web UI Access (proxy를 이용한 token 방식)

 

1) 서비스 계정과 ClusterRoleBinding 생성

// service account yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system

// cluster role binding yaml
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system

# kubectl apply -f service_account.yaml
# kubectl apply -f cluster_role_binding.yaml

2) secret을 통해 token 확인

// 한 방에 확인
# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

// 단계별 접근법
# Kubectl get sa admin-user -n kube-system
# Kubectl describe sa admin-user -n kube-system
~
Tokens:              admin-user-token-r7clc
~
# Kubectl describe secret admin-user-token-r7clc -n kube-system

3) proxy 설정

- 먼저 사용자 PC에 kubectl 이 설치되어 있어야 한다.

- kubectl 설치 후에, 사용자/.kube 폴더에 config를 kubernetes에 있는 admin.conf를 복사해서 생성한다.

- kubectl 명령어가 kubenetes 서버에 동작하면 된다.

- 다음은, proxy를 이용한 UI 접근이다. (당연히 사용자의 PC에서)

# kubectl proxy

// 이 후, 웹브라우저를 열로 다음의 URL로 접근하면 로그인 화면이 나온다.
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

- 로그인 옵션 중, token을 선택하고, 2) 번 과정에서 복사해둔 Token으로 접속하면 된다.

 

※ 이 방식은 클러스터의 현재 상태를 관리하는 데는 부족함이 없다. 하지만, 과거 상태를 보고, 또 그 자료를 이용한 통계치 관리 및 그 이상의 모니터링을 위해서는 저장 구조의 모니터링을 계획해야 한다. 예를 들어 'cAdvisor + 프로메테우스 + 그라파나' 와 같은 조합을 적용할 수 있다.