클라우드/NBP

[NBP] NKS 대시보드 구성

세브웁스 2023. 2. 14. 12:00
반응형

네이버 클라우드의 NKS 생성 및 실습 가이드

실제 네이버 클라우드의 가이드와 쿠버네티스 개발자의 조언 첨삭

NKS 생성 / 대시보드 구성 / NAS/PVC 생성 3단계로 나누어 정리

이 글은 그중 2단계 ( 대시보드 구성 )

 

대시보드 생성 작업 순서

1.    쿠버네티스 내부 계정(admin_user) 생성
2.    해당 계정 Roll_bind을 통해 all-access 권한 추가
3.    해당 계정의 토큰 번호 발급
4.    Helm 설치
5.    Helm 사용하여 kubernetes-dashboard 생성
6.    Edit 명령어를 사용하여 Cluster-IP 에서 LoadBalancer로 변경
7.    서비스 조회를 통해 external-IP 조회 후 토큰 번호 입력하여 접속
8.    대시보드 상태 확인

 

1.  쿠버네티스 내부 계정(admin_user) 생성

$ vi clusterrolebind.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
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard


2. 해당 계정 Roll_bind을 통해 all-access 권한 추가

$ vi clusterRole.yaml

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: full-access-clusterrole
rules:
- apiGroups:
  - ""
  resources:
  - nodes
  - namespaces
  - pods
  verbs:
  - get
  - list
- apiGroups:
  - apps
  resources:
  - deployments
  - daemonsets
  - statefulsets
  - replicasets
  verbs:
  - get
  - list
- apiGroups:
  - batch
  resources:
  - jobs
  verbs:
  - get
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: full-access-binding
subjects:
- kind: Group
  name: full-access-group
  apiGroup: rbac.authorization.k8s.io
roleRef:
 kind: ClusterRole
 name: full-access-clusterrole
 apiGroup: rbac.authorization.k8s.io


3.  해당 계정의 토큰 번호 생성

$ kubectl -n kubernetes-dashboard create token admin_user


4.  Helm 설치 (스크립트 방식)

$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh


5. Helm 사용하여 kubernetes-dashboard 생성

$ helm install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --kubeconfig=$KUBE_CONFIG


6.  Edit 명령어를 사용하여 Cluster-IP에서 LoadBalancer로 변경

- 저장시 자동으로 도메인 생성

- kubectl edit service named kubernetes-dashboard --kubeconfig=$KUBE_CONFIG

$ kubectl edit -n kubernetes-dashboard svc/kubernetes-dashboard --kubeconfig kubeconfig.yaml

- type - Cluster-IP -> LoadBanancer

$ kubectl patch svc kubernetes-dashboard -n kubernetes-dashboard -p '{"spec": {"type": "LoadBalancer"}}'

7. 서비스 조회를 통해 external-IP 조회 후 토큰 번호 입력하여 접속

1) external-IP 조회

$ kubectl --kubeconfig=$KUBE_CONFIG -n kubernetes-dashboard get svc
NAME                        TYPE           CLUSTER-IP      EXTERNAL-IP                                                                   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP      198.19.145.18   <none>                                                                        8000/TCP        4d17h
kubernetes-dashboard        LoadBalancer   198.19.199.11   [도메인]   443:31545/TCP   4d17h

2) 토큰 조회

$ kubectl --kubeconfig=$KUBE_CONFIG -n kubernetes-dashboard get secret | grep token
admin-user-token-6hd5d             kubernetes.io/service-account-token   3      4d16h
...

3) 토큰 상세 확인

$ kubectl --kubeconfig=$KUBE_CONFIG -n kubernetes-dashboard describe secret admin-user-token-6hd5d
...
token:      [토큰]


8.  대시보드 접속 후 확인

반응형