소개
Kubernetes Dashboard 는 Kubernetes 클러스터의 관리 및 모니터링을 간소화하는 웹 기반 사용자 인터페이스입니다. 애플리케이션을 배포하고 관리하며 클러스터 리소스를 보고 분석하는 직관적인 방법을 제공합니다. 이 랩에서는 Kubernetes Dashboard 를 배포하고 액세스하는 방법을 안내합니다.
Kubernetes Dashboard 는 Kubernetes 클러스터의 관리 및 모니터링을 간소화하는 웹 기반 사용자 인터페이스입니다. 애플리케이션을 배포하고 관리하며 클러스터 리소스를 보고 분석하는 직관적인 방법을 제공합니다. 이 랩에서는 Kubernetes Dashboard 를 배포하고 액세스하는 방법을 안내합니다.
Kubernetes Dashboard 를 배포하기 전에 클러스터가 실행 중인지 확인하십시오. 이 랩에서는 Minikube를 사용합니다.
터미널을 열고 프로젝트 디렉토리로 이동합니다.
cd ~/project
Minikube 클러스터를 시작합니다.
minikube start
Minikube 는 로컬 Kubernetes 클러스터를 생성하여 Dashboard 와 같은 기능을 쉽게 테스트할 수 있도록 합니다. 설정에는 몇 분 정도 걸릴 수 있습니다.
Minikube 의 상태를 확인하여 Minikube 가 실행 중인지 확인합니다.
minikube status
클러스터가 실행 중이지 않으면 minikube delete를 실행한 다음 minikube start를 사용하여 다시 시작하십시오.
Kubernetes Dashboard 는 기본적으로 클러스터에 포함되어 있지 않습니다. 공식 배포 YAML 파일을 사용하여 배포합니다.
다음 명령을 실행하여 Dashboard 를 배포합니다.
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
이 명령은 Deployment, Service 및 RBAC (Role-Based Access Control) 설정을 포함하여 Dashboard 에 필요한 모든 리소스를 생성합니다.
Dashboard 가 실행 중인지 확인합니다.
kubectl get pods -n kubernetes-dashboard
kubernetes-dashboard라는 이름의 pod 를 찾고 상태가 Running인지 확인합니다.
Dashboard 의 네임스페이스를 확인합니다.
kubectl get ns | grep kubernetes-dashboard
kubernetes-dashboard 네임스페이스가 존재해야 합니다.
기본적으로 Kubernetes Dashboard 는 접근을 제한합니다. 관리자 권한으로 로그인하려면 서비스 계정을 생성하고 이를 클러스터 역할에 바인딩해야 합니다.
dashboard-admin.yaml이라는 파일을 생성합니다.
nano ~/project/dashboard-admin.yaml
파일에 다음 내용을 추가합니다.
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
---
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
이 파일은 admin-user 서비스 계정을 정의하고 클러스터 전체에 대한 관리자 권한을 부여합니다.
Ctrl+X, Y를 누른 다음 Enter를 눌러 파일을 저장합니다.
구성을 적용합니다.
kubectl apply -f dashboard-admin.yaml
서비스 계정 및 역할 바인딩을 확인합니다.
kubectl get sa -n kubernetes-dashboard
admin-user 서비스 계정이 나열되어야 합니다.
kubectl get clusterrolebinding
admin-user 클러스터 역할 바인딩이 나열되어야 합니다.
이제 Dashboard 가 실행 중이고 권한이 구성되었으므로 브라우저를 통해 접근합니다.
로그인 토큰을 생성합니다.
kubectl -n kubernetes-dashboard create token admin-user
생성된 토큰을 복사합니다. 이 토큰은 로그인에 사용됩니다.
Dashboard Service 를 편집하여 NodePort 에서 노출합니다.
kubectl edit service -n kubernetes-dashboard kubernetes-dashboard
spec 아래에서 type 필드를 찾고 값을 NodePort로 변경합니다. 저장하고 종료합니다.

Dashboard 에 할당된 NodePort 를 찾습니다.
kubectl get service -n kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-metrics-scraper ClusterIP 10.104.164.172 <none> 8000/TCP 20m
kubernetes-dashboard NodePort 10.108.222.153 <none> 443:30587/TCP 20m
PORT(S) 열 아래에 나열된 포트 번호 (예: 30587) 를 확인합니다. 이 포트는 Dashboard 에 접근하는 데 사용할 포트입니다.
노드의 IP 주소를 검색합니다.
kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
minikube Ready control-plane 35m v1.26.1 192.168.58.2 <none> Ubuntu 20.04.5 LTS 5.15.0-56-generic docker://20.10.23
INTERNAL-IP 열은 노드의 IP 주소를 제공합니다.
데스크톱에서 Firefox 브라우저를 열고 다음 URL 로 이동합니다.
https://<node-ip>:<node-port>
<node-ip>를 노드의 IP 주소로, <node-port>를 3 단계의 포트로 바꿉니다.

보안 경고가 표시되면 "Advanced"를 선택한 다음 "Accept the Risk and Continue"를 선택하여 진행합니다.


이제 Kubernetes Dashboard 에 로그인하여 클러스터 리소스를 탐색하고 워크로드를 관리할 수 있습니다.

이 랩에서는 다음을 배웠습니다.
Kubernetes Dashboard 를 사용하면 애플리케이션을 시각적으로 관리하고, 리소스를 모니터링하며, 클러스터 구성을 탐색할 수 있습니다. 이 도구는 Kubernetes 운영을 단순화하며, 특히 명령줄 워크플로우에서 전환하는 초보자에게 유용합니다. Kubernetes 환경을 최대한 활용하기 위해 기능을 계속 탐색하십시오!