Kubernetes Dashboard 설치
1. 쿠버네티스 대시보드 설치
Kubernetes Dashboard의 Helm Chart 저장소 추가
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
Helm Chart 저장소 목록 확인
helm repo list
NAME URL
kubernetes-dashboard https://kubernetes.github.io/dashboard/
또는
helm ls -n kubernetes-dashboard
Kubernetes Dashboard를 설치하거나 이미 설치된 경우 업그레이드
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard
Release "kubernetes-dashboard" does not exist. Installing it now.
NAME: kubernetes-dashboard
LAST DEPLOYED: Thu Aug 29 08:50:39 2024
NAMESPACE: kubernetes-dashboard
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
*************************************************************************************************
*** PLEASE BE PATIENT: Kubernetes Dashboard may need a few minutes to get up and become ready ***
*************************************************************************************************
Congratulations! You have just installed Kubernetes Dashboard in your cluster.
To access Dashboard run:
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443
NOTE: In case port-forward command does not work, make sure that kong service name is correct.
Check the services in Kubernetes Dashboard namespace using:
kubectl -n kubernetes-dashboard get svc
Dashboard will be available at:
https://localhost:8443
kubernetes dashboard 네임스페이스 확인
kubectl get svc -n kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard-api ClusterIP 10.104.190.121 <none> 8000/TCP 105s
kubernetes-dashboard-auth ClusterIP 10.98.208.61 <none> 8000/TCP 105s
kubernetes-dashboard-kong-manager NodePort 10.109.77.170 <none> 8002:30959/TCP,8445:30358/TCP 106s
kubernetes-dashboard-kong-proxy ClusterIP 10.97.249.125 <none> 443/TCP 105s
kubernetes-dashboard-metrics-scraper ClusterIP 10.106.60.211 <none> 8000/TCP 105s
kubernetes-dashboard-web ClusterIP 10.108.184.112 <none> 8000/TCP 105s
모든 파드의 컨테이너 이미지 버전 출력
kubectl -n kubernetes-dashboard get pods -o jsonpath="{range .items[*].spec.containers[*]}{.image}{'\n'}{end}"
docker.io/kubernetesui/dashboard-api:1.7.0
docker.io/kubernetesui/dashboard-auth:1.1.3
kong:3.6
docker.io/kubernetesui/dashboard-metrics-scraper:1.1.1
docker.io/kubernetesui/dashboard-web:1.4.0
2. 접근 권한 설정
Kubernetes Dashboard에 접근하기 위해서는 적절한 권한을 가진 사용자 계정이 필요합니다. 다음과 같이 관리자가 사용할 ServiceAccount를 생성하고 ClusterRoleBinding을 설정할 수 있습니다.
관리자 서비스 계정 생성(Service Account 생성)
cat <<EOF | kubectl create -f -
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
EOF
관리자 권한 부여(Cluster Role Binding 생성)
cat <<EOF | kubectl create -f -
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
EOF
로그인 토큰 발급
- Dashboard에 로그인하려면 토큰이 필요합니다.
kubectl create token admin-user -n kubernetes-dashboard
3. 외부 접근을 위한 포트 포워딩 또는 NodePort 설정
쿠버네티스 대시보드를 외부에서 접근할 수 있도록 포트 포워딩 또는 NodePort를 설정합니다.
포트 포워딩(Proxy 설정)
Kubernetes Dashboard에 접근하기 위해 포트 포워딩을 설정해야 합니다.
kubectl -n kubernetes-dashboard port-forward --address 0.0.0.0 svc/kubernetes-dashboard-kong-proxy 8443:443
$ kubectl -n kubernetes-dashboard port-forward --address 0.0.0.0 svc/kubernetes-dashboard-kong-proxy 8443:443
Forwarding from 0.0.0.0:8443 -> 8443
- 백그라운드 실행
nohup kubectl -n kubernetes-dashboard port-forward --address 0.0.0.0 svc/kubernetes-dashboard-kong-proxy 8443:443 > port-forward.log 2>&1 &
웹 브라우저에서 대시보드 열기
https://localhost:8443
NodePort 설정
NodePort를 사용하여 외부에서 접근할 수 있도록 설정합니다.
kubectl get service kubernetes-dashboard-kong-proxy -n kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard-web ClusterIP 10.108.184.112 <none> 8000/TCP 29m
kubernetes-dashboard 편집
kubectl edit service kubernetes-dashboard-kong-proxy -n kubernetes-dashboard
- type: ClusterIP -> type: NodePort 변경
NodePort 확인
kubectl get service kubernetes-dashboard-kong-proxy -n kubernetes-dashboard
또는 NodePort를 사용자 지정할 수도 있습니다.
- 아래 명령어를 실행하여 YAML 파일을 편집한 후 nodePort 값을 원하는 포트로 설정할 수 있습니다.
kubectl edit service kubernetes-dashboard-kong-proxy -n kubernetes-dashboard
- nodePort: 31978 -> nodePort: 30001 변경
NodePort 확인
kubectl get service kubernetes-dashboard-kong-proxy -n kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard-kong-proxy NodePort 10.108.53.117 <none> 443:30001/TCP 45m
kubernetes dashboard error
Unknown error (200): Http failure during parsing for http://192.168.0.131:30001/api/v1/csrftoken/login
대시보드 접속
대시보드 로그인 화면에서 앞서 생성한 인증 토큰을 사용하여 로그인합니다.
kubectl create token admin-user -n kubernetes-dashboard
웹 브라우저
https://{NODE_IP}:30001
대시보드
- 쿠버네티스 대시보드 > 모든 네임스페이스
쿠버네티스 대시보드 삭제
Helm 릴리스 삭제
helm uninstall kubernetes-dashboard --namespace kubernetes-dashboard
네임스페이스 삭제 (선택 사항)
kubectl delete namespace kubernetes-dashboard
리소스 확인
kubectl get all -n kubernetes-dashboard
외부에서 쿠버네티스 대시보드에 접근할 수 있습니다.
참고URL
- 쿠버네티스 문서 : 쿠버네티스 대시보드를 배포하고 접속하기
- GitHub repository : kubernetes dashboard releases
'리눅스' 카테고리의 다른 글
[draft] MetalLB를 설치하고 설정하여 Kubernetes 클러스터에서 LoadBalancer 서비스를 테스트하는 방법 (1) | 2024.08.29 |
---|---|
[draft] Kubernetes 구성 파일 설정 (0) | 2024.08.29 |
[draft] 우분투에서 Unison을 설치하고 사용하는 방법 (0) | 2024.08.28 |
[draft] 우분투에서 IPv6를 영구적으로 비활성화하는 방법 (0) | 2024.08.28 |
[draft] journal 로그를 확인하고 삭제하는 방법 (0) | 2024.08.26 |