개요
Headlamp은 Kubernetes SIG UI 산하의 모던 웹 UI 대시보드. 쿠버네티스 리소스를 한눈에 조회·관리하고 플러그인으로 확장 가능. 로컬 데스크톱 앱 또는 인클러스터 배포 모두 지원. 벤더 중립적 Kubernetes Dashboard 대체제. RBAC 자동 연동으로 권한 기반 UI 제어.
- GitHub: https://github.com/kubernetes-sigs/headlamp
- 소속: Kubernetes SIG UI (공식)
- 배포: 데스크톱 앱 + 인클러스터
핵심 기능
| 기능 | 설명 |
|---|---|
| 멀티 클러스터 | 여러 클러스터 한 화면에서 조회 |
| RBAC 연동 | 권한에 따라 UI 자동 제어 |
| 리소스 관리 | 생성·업데이트·삭제 (취소 가능) |
| 로그 조회 | Pod 로그 실시간 스트리밍 |
| 터미널 exec | Pod에 직접 셸 접속 |
| 리소스 에디터 | YAML 인라인 편집 |
| 플러그인 시스템 | 기능 확장 가능 |
배포 방식
1. 데스크톱 앱 (로컬)
# macOS
brew install headlamp
# 또는 GitHub Releases에서 다운로드→ kubeconfig 자동 읽기, 로컬에서 즉시 사용
2. 인클러스터 (서버)
helm repo add headlamp https://headlamp-k8s.github.io/headlamp/
helm install headlamp headlamp/headlamp→ 팀 공유 대시보드
vs Kubernetes Dashboard vs Lens
| 항목 | K8s Dashboard | Headlamp | Lens |
|---|---|---|---|
| 소속 | K8s 공식 | K8s SIG UI | Mirantis (상용화) |
| 벤더 중립 | ✅ | ✅ | ❌ (유료화) |
| 플러그인 | ❌ | ✅ | ✅ (제한적) |
| 멀티 클러스터 | 제한 | ✅ | ✅ |
| 데스크톱 | ❌ | ✅ | ✅ |
| 인클러스터 | ✅ | ✅ | ❌ |
| RBAC 자동 연동 | ✅ | ✅ | ✅ |
| 모던 UI | 보통 | ✅ | ✅ |
→ Lens 유료화 후 대안으로 Headlamp 부상
플러그인 시스템
Headlamp = 코어 + 플러그인
플러그인 예시:
- 커스텀 리소스 뷰어
- 비용 모니터링
- GitOps 통합
- 사내 도구 연동
개발:
React 컴포넌트로 플러그인 작성
→ 빌드 → Headlamp에 로드
RBAC 자동 연동
관리자: 모든 리소스 조회·수정·삭제
개발자: 본인 네임스페이스만 조회·수정
뷰어: 읽기만 가능
→ 별도 설정 없이 K8s RBAC 그대로 반영
→ 안전한 읽기/쓰기 보장
운영·디버깅 도구
Pod 로그:
실시간 스트리밍 + 컨테이너 선택
터미널:
exec로 Pod 셸 직접 접속
→ kubectl exec와 동일
리소스 에디터:
YAML 직접 수정 + 적용
→ kubectl edit와 동일 but GUI
취소 가능 동작:
생성/업데이트/삭제 시 되돌리기 가능
활용 시나리오
| 시나리오 | 사용 |
|---|---|
| 개발자 | Pod 상태·로그 확인, exec 디버깅 |
| 인프라 팀 | 멀티 클러스터 모니터링 |
| 온보딩 | 신규 팀원에게 시각적 K8s 이해 도움 |
| Lens 대체 | Lens 유료화 → Headlamp으로 전환 |
| 보안 팀 | RBAC 기반 읽기 전용 뷰 제공 |
의의
1. Lens 유료화 후 벤더 중립 대안
- K8s SIG UI 공식 → 지속성 보장
2. 플러그인으로 확장 가능
- 사내 도구 통합
- 커뮤니티 플러그인
3. 데스크톱 + 인클러스터 양쪽 지원
- 개인 사용 + 팀 공유
4. RBAC 자동 = 보안 기본