웹 UI
웹 UI (대시보드) 접근하기
Kubernetes Dashboard는 더 이상 사용되지 않고 유지보수되지 않아요.
Kubernetes Dashboard 프로젝트는 보관되었고 더 이상 적극적으로 유지보수되지 않습니다. 새 설치에는 Headlamp를 고려하세요.
Kubernetes Dashboard와 유사한 클러스터 내 배포는 Headlamp in-cluster 설치 가이드를 참고하세요.
출처: 문서
본문
Dashboard는 웹 기반 쿠버네티스 사용자 인터페이스예요. Dashboard를 사용해 컨테이너화된 애플리케이션을 쿠버네티스 클러스터에 배포하고, 컨테이너화된 애플리케이션을 문제 해결하고, 클러스터 리소스를 관리할 수 있습니다. 클러스터에서 실행 중인 애플리케이션의 개요를 보거나 개별 쿠버네티스 리소스(예: Deployment, Job, DaemonSet 등)를 만들거나 수정하는 데 Dashboard를 사용할 수 있어요. 예를 들어 Deployment를 스케일링하고, 롤링 업데이트를 시작하고, 파드를 재시작하거나 배포 마법사로 새 애플리케이션을 배포할 수 있습니다.
Dashboard는 또한 클러스터의 쿠버네티스 리소스 상태와 발생했을 수 있는 오류에 대한 정보도 제공해요.

Dashboard UI 배포하기
Kubernetes Dashboard는 현재 Helm 기반 설치만 지원해요. 더 빠르고 Dashboard 실행에 필요한 모든 의존성을 더 잘 제어할 수 있기 때문입니다.
Dashboard UI는 기본적으로 배포되지 않아요. 배포하려면 다음 명령을 실행하세요:
# 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 UI 접근하기
클러스터 데이터를 보호하기 위해 Dashboard는 기본적으로 최소 RBAC 구성으로 배포돼요. 현재 Dashboard는 Bearer Token으로만 로그인을 지원합니다. 이 데모용 토큰을 만들려면 샘플 사용자 만들기 가이드를 따라가세요.
튜토리얼에서 만든 샘플 사용자는 관리 권한을 가지며 교육 목적 전용입니다.
명령줄 프록시
kubectl 명령줄 도구로 다음 명령을 실행해 Dashboard에 접근을 활성화할 수 있어요:
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443
Kubectl은 Dashboard를 https://localhost:8443에서 사용할 수 있게 해줍니다.
UI는 명령이 실행된 머신에서 만 접근할 수 있어요. 더 많은 옵션은 kubectl port-forward --help를 참고하세요.
kubeconfig 인증 방법은 외부 ID 제공자나 X.509 인증서 기반 인증을 지원하지 않습니다.
환영 뷰
빈 클러스터에서 Dashboard에 접근하면 환영 페이지가 보여요. 이 페이지에는 이 문서로 가는 링크와 첫 애플리케이션을 배포하는 버튼이 있습니다. 추가로 클러스터의 kube-system 네임스페이스에서 기본으로 실행되는 시스템 애플리케이션(예: Dashboard 자체)을 볼 수 있어요.

컨테이너화된 애플리케이션 배포하기
Dashboard는 간단한 마법사로 컨테이너화된 애플리케이션을 Deployment와 선택적 Service로 만들고 배포하게 해줘요. 애플리케이션 세부 사항을 수동으로 지정하거나, 애플리케이션 구성을 담은 YAML·JSON 매니페스트 파일을 업로드할 수 있습니다.
아무 페이지의 오른쪽 위 CREATE 버튼을 클릭해 시작해요.
애플리케이션 세부 사항 지정하기
배포 마법사는 다음 정보를 제공하길 기대합니다:
-
App name (필수): 애플리케이션 이름. 이 이름의 라벨이 배포될 Deployment와 Service(있으면)에 추가됩니다.
애플리케이션 이름은 선택한 쿠버네티스 네임스페이스 안에서 고유해야 해요. 소문자로 시작하고 소문자나 숫자로 끝나야 하며, 소문자·숫자·대시(-)만 포함할 수 있습니다. 24자로 제한되고, 앞뒤 공백은 무시됩니다.
-
Container image (필수): 레지스트리의 공개 Docker 컨테이너 이미지 URL 또는 프라이빗 이미지(보통 Google Container Registry나 Docker Hub에 호스팅). 컨테이너 이미지 스펙은 콜론으로 끝나야 해요.
-
Number of pods (필수): 애플리케이션을 배포할 대상 파드 수. 양의 정수여야 해요.
클러스터 전체에 걸쳐 원하는 파드 수를 유지하는 Deployment가 생성됩니다.
-
Service (선택): 애플리케이션의 일부(예: 프론트엔드)에서는 Service를 클러스터 바깥의 외부(공개일 수도 있는) IP 주소로 노출하고 싶을 수 있습니다(외부 Service).
외부 Service는 열고자 하는 포트를 하나 이상 열어야 할 수 있어요.
클러스터 안에서만 보이는 다른 Service는 내부 Service라고 합니다.
Service 유형과 관계없이 Service를 만들고 컨테이너가 (들어오는) 포트에서 수신한다면 두 포트를 지정해야 해요. Service는 (들어오는) 포트를 컨테이너가 보는 대상 포트로 매핑하도록 생성됩니다. 이 Service는 배포된 파드로 라우팅합니다. 지원되는 프로토콜은 TCP와 UDP예요. 이 Service의 내부 DNS 이름은 위에서 애플리케이션 이름으로 지정한 값입니다.
필요하면 Advanced options 섹션을 펼쳐 더 많은 설정을 지정할 수 있어요:
-
Description: 여기에 입력한 텍스트는 어노테이션으로 Deployment에 추가되고 애플리케이션 세부 사항에 표시됩니다.
-
Labels: 애플리케이션에 기본으로 사용되는 라벨은 애플리케이션 이름과 버전이에요. release, environment, tier, partition, release track 같은 추가 라벨을 Deployment·Service(있으면)·Pods에 적용하도록 지정할 수 있습니다.
예시:
release=1.0 tier=frontend environment=pod track=stable -
Namespace: 쿠버네티스는 같은 물리 클러스터를 기반으로 하는 여러 가상 클러스터를 지원해요. 이 가상 클러스터를 네임스페이스라고 합니다. 리소스를 논리적으로 이름 붙은 그룹으로 분할하게 해줍니다.
Dashboard는 모든 사용 가능한 네임스페이스를 드롭다운 목록으로 제공하고, 새 네임스페이스 생성을 허용해요. 네임스페이스 이름은 최대 63자의 영숫자와 대시(-)를 포함할 수 있지만 대문자는 사용할 수 없습니다. 네임스페이스 이름이 숫자만으로 구성되어서는 안 됩니다. 이름이 10 같은 숫자로 설정되면 파드는 default 네임스페이스에 들어갑니다.
네임스페이스 생성이 성공하면 기본 선택됩니다. 생성에 실패하면 첫 번째 네임스페이스가 선택됩니다.
-
Image Pull Secret: 지정된 Docker 컨테이너 이미지가 프라이빗이면 pull secret 자격 증명이 필요할 수 있어요.
Dashboard는 모든 사용 가능한 secret을 드롭다운 목록으로 제공하고, 새 secret 생성을 허용해요. secret 이름은
new.image-pull.secret처럼 DNS 도메인 이름 구문을 따라야 합니다. secret 내용은 base64로 인코딩되어.dockercfg파일에 지정되어야 해요. secret 이름은 최대 253자일 수 있습니다.image pull secret 생성이 성공하면 기본 선택됩니다. 생성에 실패하면 secret이 적용되지 않습니다.
-
CPU requirement (cores) 및 Memory requirement (MiB): 컨테이너의 최소 리소스 limit을 지정할 수 있어요. 기본적으로 파드는 무제한 CPU·메모리 limit으로 실행됩니다.
-
Run command 및 Run command arguments: 기본적으로 컨테이너는 지정된 Docker 이미지의 기본 엔트리포인트 명령을 실행해요. 명령 옵션과 인자를 사용해 기본값을 덮어쓸 수 있습니다.
-
Run as privileged: 이 설정은 권한 있는 컨테이너의 프로세스가 호스트에서 root로 실행되는 프로세스와 동등한지 여부를 결정해요. 권한 있는 컨테이너는 네트워크 스택 조작과 장치 접근 같은 기능을 사용할 수 있습니다.
-
Environment variables: 쿠버네티스는 환경 변수로 Service를 노출해요. 환경 변수를 구성하거나 환경 변수 값을 사용해 명령에 인자를 전달할 수 있습니다. 애플리케이션이 Service를 찾는 데 사용할 수 있어요. 값은
$(VAR_NAME)구문으로 다른 변수를 참조할 수 있습니다.
YAML 또는 JSON 파일 업로드하기
쿠버네티스는 선언형 구성을 지원해요. 이 방식에서 모든 구성은 매니페스트(YAML 또는 JSON 구성 파일)에 저장됩니다. 매니페스트는 쿠버네티스 API 리소스 스키마를 사용해요.
배포 마법사에서 애플리케이션 세부 사항을 지정하는 대신, 하나 이상의 매니페스트로 애플리케이션을 정의하고 Dashboard로 파일을 업로드할 수 있습니다.
Dashboard 사용하기
다음 절에서는 Kubernetes Dashboard UI의 뷰를 설명해요. 무엇을 제공하고 어떻게 사용할 수 있는지입니다.
내비게이션
클러스터에 쿠버네티스 오브젝트가 정의되면 Dashboard는 초기 뷰에서 그것들을 보여줘요. 기본적으로 default 네임스페이스의 오브젝트만 표시되며, 내비게이션 메뉴에 있는 네임스페이스 선택기로 바꿀 수 있습니다.
Dashboard는 대부분의 쿠버네티스 오브젝트 종류를 보여주고 몇 가지 메뉴 카테고리로 그룹화해요.
Admin overview
클러스터·네임스페이스 관리자를 위해 Dashboard는 Nodes, Namespaces, PersistentVolumes를 나열하고 이들에 대한 세부 뷰가 있습니다. 노드 목록 뷰는 모든 노드에 걸쳐 집계된 CPU·메모리 사용량 메트릭을 포함합니다. 세부 뷰는 노드에 대한 메트릭, 스펙, 상태, 할당된 리소스, 이벤트, 노드에서 실행 중인 파드를 보여줍니다.
Workloads
선택한 네임스페이스에서 실행 중인 모든 애플리케이션을 보여줘요. 뷰는 워크로드 종류별로(예: Deployments, ReplicaSets, StatefulSets) 애플리케이션을 나열합니다. 각 워크로드 종류는 별도로 볼 수 있습니다. 목록은 ReplicaSet의 준비된 파드 수나 파드의 현재 메모리 사용량 같은 워크로드에 대한 실행 가능한 정보를 요약합니다.
워크로드 세부 뷰는 상태·스펙 정보를 보여주고 오브젝트 간의 관계를 드러내요. 예를 들어 ReplicaSet이 제어하는 파드나 Deployment용 새 ReplicaSet·HorizontalPodAutoscaler가 그렇습니다.
Services
서비스를 외부 세계에 노출하고 클러스터 안에서 발견하게 해주는 쿠버네티스 리소스를 보여줘요. 그래서 Service·Ingress 뷰는 그들이 대상으로 하는 파드, 클러스터 연결용 내부 엔드포인트, 외부 사용자용 외부 엔드포인트를 보여줍니다.
Storage
Storage 뷰는 애플리케이션이 데이터를 저장하는 데 사용하는 PersistentVolumeClaim 리소스를 보여줘요.
ConfigMaps and Secrets
클러스터에서 실행 중인 애플리케이션의 라이브 구성에 사용되는 모든 쿠버네티스 리소스를 보여줘요. 뷰는 구성 오브젝트의 편집·관리를 허용하고 기본적으로 숨겨진 secret을 표시합니다.
Logs viewer
파드 목록과 세부 페이지는 Dashboard에 내장된 로그 뷰어로 연결됩니다. 뷰어는 단일 파드에 속한 컨테이너의 로그를 드릴다운할 수 있게 해줘요.

더 알아보기 (Learn more)
자세한 내용은 Kubernetes Dashboard 프로젝트 페이지를 참고하세요.