IT/kubernetes

kubernetes dashboard 설치및 사용 가이드

by_k 2022. 4. 20. 20:09

kubernetes Dashboard 설치

해당 부분은 작업의 타입에 따라 다양하게 진행될 수 있는 바, 자유롭게 작성하되 최대한 작업자의 시선으로 자세히 기술.

대시보드는 웹 기반 Kubernetes 사용자 인터페이스이다.

대시보드를 사용하여 컨테이너화된 애플리케이션을 Kubernetes 클러스터에 배포하고, 컨테이너화된 애플리케이션의 문제를 해결하고, 클러스터 리소스를 관리할 수 있다. 대시보드를 사용하여 클러스터에서 실행 중인 애플리케이션의 개요를 확인하고 개별 Kubernetes 리소스(예: 배포, 작업, DaemonSets 등)를 생성하거나 수정할 수 있다.

대시보드 UI 설치

배포하려면 다음 명령을 실행

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

대시보드가 설치확인을 합니다.

1 kubectl get pods -n kubernetes-dashboard

 

정상적으로 설치가되고, Running 상태인것을 볼 수 있다.

대시보드 권한추가

대시보드에 접근하기위해 인증서가 필요

1 $ grep 'client-certificate-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.crt
2
3 $ grep 'client-key-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.key
4
5 $ openssl pkcs12 -export -clcerts -inkey kubecfg.key -in kubecfg.crt -out kubecfg.p12 -name "kubernetes-admin"
6
7

비밀번호를 입력하라고 나오면, 입력한다.

이제 디렉토리를 보면, kubecfg.p21 이라는 파일이 만들어져 있을 것이다.

 

ca.crt 라고 CA 인증서가 필요하다.

1 cd /home/administrator/pki

 

kubecfg.p12 , ca.crt파일을 winscp이나  ftp로 복사한다.

 

 

관리자권한으로 실행

크롬, 익스플로러, 엣지 브라우저에서 사용하기위해 설정을 한다.

 

1 certutil.exe -addstore "Root" path\to\ca.crt

 

local PC에서 위와 같이 ca.crt 를 찾아서 등록해 준다.

 

-p 이후 블러는 password를 입력

kubecfg.p12 도 추가한다.

1 certutil.exe -p {password} -user -importPFX kubecfg.p12

실행하면 아래처럼 인증서 등록을 위한 창이 뜬다.

 

이제 모든 브라우저를 끄고, 브라우저 전체를 재시작해야 적용이 되기 때문

이후 대시보드에서 리소스에대한 권한을 부여해야 사용할수있다.

clusterrole을 통해서 접근가능한 Resources를 확인가능한데, kubernetes-dashboard는 metrics 만 get, list, watch 가능하다고한다.

kubernetes-dashboard serviceaccountclusterrole인 kubernetes-dashboard도 모두 사용할 수 있도록 아래와같이 변경을 한다.

kubectl edit를 통해 들어가보면 rules.apiGroups가 metrics.k8s.io 만 등록되어 있다.

그래서 kubernetes-dashboard secret token으로는 metrics.k8s.io 라는 api밖에 사용을 하지못한다.

1 kubectl edit clusterrole kubernetes-dashboard

 

서버PC

rules에 apiGroups, resources, verbs 에 있던것들을 다 지우고 '*' 추가한다.

 

서버PC

변경을 하면 아래 화면과 같이 권한에대한 변경을 확인할수있다.

 

소스는 아래와같다.

1 administrator@k:~/work/kube-work-yaml$ kubectl edit clusterrole kubernetes-dashboard
2# Please edit the object below. Lines beginning with a '#' will be ignored,
3# and an empty file will abort the edit. If an error occurs while saving this file will be
4# reopened with the relevant failures.
5#
6 apiVersion: rbac.authorization.k8s.io/v1
7 kind: ClusterRole
8 metadata:
9  annotations:
10    kubectl.kubernetes.io/last-applied-configuration: |
11      {"apiVersion":"rbac.authorization.k8s.io/v1","kind":"ClusterRole","metadata":{"annotations":{},"labels":{"k8s-app":"kubernetes-dashboard"},"name":"kubernetes-dashboard"},"rules":[{"apiGroups":["metrics.k8s.io"],"resources":["pods","nodes"],"verbs":["get","list","watch"]}]}
12  creationTimestamp: "2021-12-07T06:07:07Z"
13  labels:
14    k8s-app: kubernetes-dashboard
15  name: kubernetes-dashboard
16  resourceVersion: "152704"
17  uid: 4ca23b93-766b-4636-b9f5-a58cd600eff3
18 rules:
19 - apiGroups:
20  - '*'
21  resources:
22  - '*''
23  verbs:
24  - '*'

Apiserver를 통해 대시보드에 접속하기위해 필요한 정보를 조회가능하다.

Dashboard에 접근하기 전 기본적으로 확인해야 하는 Cluster info를 먼저 확인하도록 하겠다.

1 kubectl cluster-info

1 https://<master-ip>:<apiserver-port>/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

 

크롬의경우 인증서를 추가하겠냐는 창이뜬다.

 

주소창을 보면, 인증서가 정상적으로 동작하고 있는 것을 알 수 있다.

 

 

 

대시보드 토큰조회

kubernetes 대시보드는 secret에서 토큰을 조회 할 수 있다.

토큰이라 블러처리

명령어는 아래와 같다.

1 kubectl describe serviceaccount kubernetes-dashboard -n kubernetes-dashboard
2
3 kubectl describe secret kubernetes-dashboard-token-2mfjb -n kubernetes-dashboard | grep token: | awk '{print $2}'
4

조회된 토큰으로 로그인을 한다.

간단한 사용법

디플로이탭에서 올라간 디플로이먼트리스트를 확인할수있다.

또한 노드나 파드 레플리카셋 에대한 정보를 UI로 확인가능하다.

nginx 팟을 3개가 올라간것을 확인할수있다.

그럼 pods를  dashboard를 통해 증가 시켜본다.

대시보드에서 yaml, json형식으로 리소스를 편집이 가능하다.

spec.replicas를 통해 파드를 수정이 가능합니다.

spce.replicas : 3-> 4로 변경후 업데이트버튼을 누르면 콘솔상에서 파드는 추가된것을 확인할수있다.

  1.  

 

참고 

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

 

쿠버네티스 대시보드를 배포하고 접속하기

웹 UI(쿠버네티스 대시보드)를 배포하고 접속한다.

kubernetes.io

https://crystalcube.co.kr/199

'IT > kubernetes' 카테고리의 다른 글

Helm3 이상 설치(windows)  (0) 2022.04.14
kubernetes 구성원리  (0) 2022.03.29