래원

[Kubernetes] Kubernetes Dashboard 설정 본문

Docker 및 Kubernetes/Kubernetes

[Kubernetes] Kubernetes Dashboard 설정

Laewon Jeong 2025. 1. 23. 20:44

 

이번 글에서는 Kubernetes Dashboard 설정 과정에 대해 정리할 예정이다.

 

Kubernetes Dashboard는 클러스터를 시각적으로 관리할 수 있는 웹 기반 UI이다.

이를 통해 리소스의 상태를 쉽게 파악하고 관리할 수 있기 때문에 Dashboard 설정을 진행했다.

 

Deploying Dashboard UI

Helm 설치

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

 

공식문서에서 위 그림과 같이 현재 대시보드는 helm 기반 설치만 지원한다고 되어있다.(helm이란 kubernetes 애플리케이션을 배포하고 관리하기 위한 패키지 매니저로 볼 수 있다.)

 

따라서, 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

helm version # 설치 확인

 

 

Dashboard 설치

다음으로 kubernetes-dashboard repository를 추가해주고, Helm을 사용해 Kubernetes 대시보드를 설치한다. .

# Add kubernetes-dashboard repository
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
# Deploy a Helm Release named "kubernetes-dashboard" using the kubernetes-dashboard chart
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard

 

 

Dashboard Service 타입 변경

Dashboard를 외부에서 접근할 수 있게 NodePort 형식으로 바꿔주어야한다.

kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard-kong-proxy

위 그림과 같이 targetPort: 8443 밑에 nodePort: <원하는 포트>를 추가하고, type을 NodePort로 변경해준다.

 

포트포워딩

node port로 변경했으니, 포트포워딩을 진행해야한다.

실제 dashboard가 띄워져있는 서버를 확인하고 이에 맞게 포트포워딩을 진행했다.

 

접속 확인

실제 접속을 해보면 잘 접속되는 것을 확인할 수 있다.

 

하지만 접속하기 위해서는 token 값이 필요하다. 따라서, Dashboard 사용자 계정을 만들어 token을 얻어 접속해야한다.

 

Dashboard 사용자 계정 생성

ClusterRoleBinding 생성

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

 

위 작업에서는 admin-user라는 ServiceAccount에 cluster-admin이라는 ClusterRole을 연결한다.

cluster-admin은 클러스터 내 모든 리소스에 대한 관리자 권한을 가진 역할이다.

 

Service Account 생성

cat <<EOF | kubectl create -f -
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
EOF

 

위 작업은 admin-user라는 이름의 ServiceAccount를 kubernetes-dashboard 네임스페이스에 생성한다.

 

kubectl get sa -n kubernetes-dashboard

 

확인해보면 정상적으로 생성된 것을 확인할 수 있다.

 

Token 생성

접속하기 위한 token 생성은 다음과 같이 할 수 있다.

kubectl -n kubernetes-dashboard create token admin-user

 

Dashboard 접속

이제 token을 통해 Dashboard에 접속할 수 있다.

 

마무리


이번 글에서는 Kubernetes Dashboard 구성 과정과 token을 이용해 접속하는 방법까지 정리해보았다.