클라우드/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. 대시보드 접속 후 확인
반응형