쿠버네티스 첫걸음 5편 — kubectl·k9s·Headlamp·Freelens·Lens: 쿠버네티스 관리 도구, 왜 쓰고 무엇을 고를까
쿠버네티스를 다루는 도구는 결국 모두 같은 API를 부릅니다. 그런데도 왜 kubectl을 먼저 익혀야 하는지, 그 위에 k9s(터미널 UI)·Headlamp(공식 GUI)·Freelens(무료 데스크톱)·Lens(상용)가 각각 무엇을 더해 주는지 비교합니다. 2026년 1월 은퇴한 Kubernetes Dashboard의 후속으로 Headlamp가 공식 추천된 배경, Lens의 라이선스 조건과 무료 포크 Freelens, 컨텍스트 전환(kubectx·kubens)·여러 파드 로그(stern)·프롬프트 안전장치(kube-ps1)·패키지 설치(Helm) 같은 보조 도구까지 설치 명령과 함께 정리했습니다. 같은 작업을 도구별로 어떻게 하는지 비교하는 위젯이 들어 있습니다.
3·4편에서 kubectl로 파드를 띄우고, 로그를 보고, 디플로이먼트를 업데이트했습니다. 그런데 실제 회사 클러스터에는 네임스페이스가 수십 개, 파드가 수백 개 있습니다. kubectl get pods -n 어쩌구를 치고, 이름을 복사하고, kubectl logs에 붙여 넣고… 금방 지칩니다. 그래서 동료들의 화면에는 알록달록한 터미널 UI(k9s)나 대시보드 앱(Headlamp, Freelens, Lens)이 떠 있곤 합니다.
이 글은 두 질문에 답합니다. ① 그래도 왜 kubectl을 먼저 익혀야 하나? ② 그 위에 무엇을, 어떤 기준으로 얹을까?
쿠버네티스에서 모든 조작은 컨트롤 플레인의 API 서버에 보내는 요청입니다(1편). kubectl도, k9s도, Headlamp도, Freelens도, CI 파이프라인도, Argo CD 같은 배포 도구도 전부 같은 kubeconfig로 같은 API를 부릅니다. 도구는 그 요청을 어떤 화면으로 보여 주느냐만 다릅니다.
공식 문서, 에러 해결 글, 동료의 슬랙 답변, AI 어시스턴트의 답이 전부 kubectl 명령으로 쓰여 있다. kubectl을 읽을 줄 알아야 남의 도움을 받을 수 있다.
어디서나
GUI를 설치할 수 없는 서버, 보안 정책으로 막힌 PC, CI 파이프라인, 컨테이너 안 — kubectl은 파일 하나라 어디서나 돈다.
자동화
배포 스크립트·GitHub Actions·Makefile은 kubectl로 쓴다. 클릭은 기록이 남지 않지만 명령은 남는다(6편).
최후의 수단
GUI가 멈추거나 보여 주지 않는 필드가 있을 때, kubectl get -o yaml은 언제나 진실을 보여 준다.
그래서 권하는 순서는 kubectl로 개념을 익힌 뒤(3·4편) → 손에 맞는 화면 도구를 얹는 것입니다. 화면 도구가 하는 일을 kubectl로 설명할 수 있으면, 어떤 도구를 써도 헤매지 않습니다.
3. k9s — 터미널 안의 대시보드
k9s는 터미널 안에서 돌아가는 화면형 도구입니다(Apache 2.0, 무료). top 명령처럼 화면이 실시간으로 갱신되고, 키보드로 리소스 사이를 오갑니다. 쿠버네티스를 매일 다루는 엔지니어 사이에서 가장 인기 있는 도구입니다.
bash
# 맥
brew install derailed/k9s/k9s
# 윈도우 (scoop 또는 choco)
scoop install k9s
bash
k9s
키
동작
kubectl로 치면
:pod ⏎ / :deploy ⏎ / :svc ⏎
리소스 종류 바꾸기
kubectl get pods 등
/ 글자
목록 필터
| grep
0
모든 네임스페이스
-A
d
describe
kubectl describe
l
로그
kubectl logs -f
s
셸 열기
kubectl exec -it -- sh
Shift+F
port-forward
kubectl port-forward
Ctrl+D
삭제 (확인 창 뜸)
kubectl delete
:ctx ⏎
클러스터(context) 바꾸기
kubectl config use-context
?
현재 화면의 단축키 전체
—
💡
k9s의 숨은 장점: 지금 어디 연결됐는지 항상 보인다. 화면 맨 위에 현재 context와 클러스터 이름이 늘 떠 있어서, 2편에서 경고한 "운영 클러스터에서 실습하기" 실수를 줄여 줍니다. 읽기만 하고 싶을 때는 k9s --readonly로 켜면 삭제·수정 키가 막힙니다.
4. Headlamp — 쿠버네티스 공식 GUI
오랫동안 쿠버네티스의 "공식 대시보드"는 Kubernetes Dashboard였습니다. 그런데 유지보수할 사람이 부족해져 2026년 1월 21일 저장소가 보관(archived) 처리되며 은퇴했습니다. 쿠버네티스 프로젝트는 2026년 6월 공식 블로그에서 후속으로 Headlamp를 추천했습니다. Headlamp는 쿠버네티스 SIG UI(사용자 인터페이스 특별 관심 그룹) 산하의 오픈소스(Apache 2.0) 프로젝트입니다.
⚠️
옛 튜토리얼 주의. 2025년 이전 글에는 kubectl apply -f .../kubernetes/dashboard/.../recommended.yaml로 대시보드를 설치하라는 안내가 많습니다. 이제 더 이상 보안 업데이트가 나오지 않는 프로젝트이니, 새로 설치한다면 Headlamp를 쓰세요.
Headlamp는 데스크톱 앱으로도, 클러스터 안에 설치하는 웹 대시보드로도 쓸 수 있습니다. 개인이 쓰기에는 데스크톱 앱이 간단합니다. 내 kubeconfig를 읽어 context 목록을 그대로 보여 줍니다.
bash
# 맥
brew install --cask headlamp
powershell
# 윈도우
winget install headlamp
ℹ️
Headlamp 공식 문서에 따르면 현재 맥·윈도우 데스크톱 빌드는 서명·공증이 되어 있지 않아, 처음 실행할 때 운영체제가 앱을 막을 수 있습니다. 맥은 시스템 설정 → 개인정보 보호 및 보안에서 "확인 없이 열기"를, 윈도우는 SmartScreen 창에서 "추가 정보 → 실행"을 눌러야 할 수 있습니다. 회사 PC라면 보안팀 정책을 먼저 확인하세요.
Headlamp의 강점은 관계를 따라가기 쉽다는 것입니다. 디플로이먼트를 누르면 그 아래 ReplicaSet과 파드가, 파드를 누르면 로그·Events·셸 버튼이 한 화면에 있습니다. 플러그인으로 기능을 넓힐 수 있고, 팀 공용 대시보드로 클러스터에 설치해 브라우저로 여럿이 볼 수도 있습니다(설치는 Helm으로 — 8장).
5. Lens와 Freelens — 데스크톱 쿠버네티스 IDE
Lens는 "쿠버네티스 IDE"라는 이름으로 가장 먼저 유명해진 데스크톱 앱입니다. 그런데 라이선스가 몇 차례 바뀌어 혼란이 많습니다.
이름
정체
라이선스 · 가격 (2026년 9월)
Lens Desktop
Mirantis(이후 Lens 팀)의 상용 제품. 계정 로그인 필요
개인과 연매출·투자금 1천만 달러 미만 조직은 무료(Lens Personal). 그 이상 조직은 유료 구독(인당 월 25달러부터)
OpenLens
Lens의 오픈소스 핵심을 빌드한 버전
사실상 개발 중단 — 새로 쓰지 말 것
Freelens
OpenLens를 이어받은 커뮤니티 포크
MIT — 계정·로그인 없이 누구나 무료
Lens 계열이 익숙한 팀이라면 Freelens가 라이선스 걱정 없는 선택입니다. 화면 구성은 Lens와 거의 같고, kubectl과 Helm이 함께 들어 있습니다.
bash
# 맥
brew install --cask freelens
powershell
# 윈도우
winget install Freelensapp.Freelens
⚠️
Docker Desktop 때와 같은 함정. "회사에서 Lens를 써도 되나요?"의 답은 회사 규모에 달려 있습니다. 매출이나 투자금이 기준을 넘는 회사에서 무료 계정으로 쓰면 라이선스 위반이 될 수 있습니다. 도커 2편처럼, 이런 조건이 신경 쓰인다면 처음부터 Headlamp나 Freelens처럼 조건 없는 오픈소스를 표준으로 정하는 편이 편합니다. 가격 조건은 바뀔 수 있으니 도입 전 공식 가격 페이지를 확인하세요.
6. 같은 일, 도구별로
위에서 소개한 네 도구로 자주 하는 일을 어떻게 하는지 비교해 보세요. 모두 뒤에서는 같은 kubectl 요청이 나간다는 것을 기억하면, 새 도구도 금방 익숙해집니다.
7. 작지만 매일 쓰는 보조 도구
큰 도구 말고도, kubectl을 덜 피곤하게 만들어 주는 작은 CLI들이 있습니다. 모두 무료 오픈소스입니다.
지금까지는 YAML을 직접 썼습니다. 그런데 데이터베이스, 모니터링, 대시보드처럼 남이 만든 소프트웨어를 클러스터에 설치하려면 YAML이 수십 개 필요합니다. Helm은 이 YAML 묶음을 차트(chart)라는 패키지로 만들어, brew install처럼 한 줄로 설치하고 업그레이드하게 해 줍니다(Apache 2.0, CNCF 졸업 프로젝트, 2025년 11월 Helm 4 출시).
bash
# 맥
brew install helm
powershell
# 윈도우
winget install Helm.Helm
4장의 Headlamp를 팀 공용 웹 대시보드로 클러스터에 설치하는 것이 좋은 예입니다(Headlamp 공식 문서의 방법).
Helm은 "남의 앱 설치"부터. 우리 앱을 Helm 차트로 만드는 것은 템플릿 문법을 익혀야 해서 입문 단계에는 무겁습니다. 우리 앱은 4편처럼 평범한 YAML로 두고, 환경별 차이는 6편의 Kustomize(kubectl에 내장)로 다루는 것부터 시작하세요. Helm 차트를 받아 쓸 때는 공식 저장소인지, 최근까지 유지보수되는지 꼭 확인합니다.
9. 추천 조합
사람
추천
이유
막 시작한 개발자
kubectl + Headlamp
명령으로 개념을 익히고, 막히면 화면으로 관계를 확인
매일 클러스터를 보는 백엔드·DevOps
kubectl + k9s + kubectx/kubens + stern
가장 빠르다. 서버 SSH 안에서도 똑같이
Lens에 익숙한 팀
Freelens
같은 경험, 라이선스 조건 없음
QA·기획 등 비개발 동료
팀 공용 Headlamp(클러스터 설치) + 읽기 전용 권한
설치 없이 브라우저로 상태 확인. 권한은 6편
누구나
kube-ps1 또는 k9s 상단 표시
현재 context가 늘 보이게 — 사고 예방
🤖
IDE와 AI 어시스턴트도 결국 kubectl. VS Code의 Kubernetes 확장, 코딩 에이전트에게 "파드가 왜 안 뜨는지 봐 줘"라고 시키는 것도 뒤에서는 kubectl을 실행합니다. 그래서 에이전트가 제안한 명령을 읽고 승인할 줄 아는 것이 더 중요해졌습니다 — 특히 delete와 현재 context.
마치며
🧠
5편 요약
· 모든 도구는 같은 kubeconfig로 같은 API를 부른다 — 화면만 다르다
· kubectl은 공통 언어·자동화·최후의 수단이라 먼저 익힌다
· k9s = 터미널 UI(빠름), Headlamp = Dashboard 은퇴 후 공식 추천 GUI, Freelens = 조건 없는 Lens 계열 무료 앱
· Lens는 매출·투자금 1천만 달러 이상 조직에서 유료 — 도입 전 확인
· 보조 도구: kubectx·kubens(전환), stern(로그), kube-ps1(안전), Helm(남의 앱 설치)
마지막 편에서는 혼자가 아니라 팀으로 쿠버네티스를 쓰는 법을 다룹니다. 네임스페이스로 공간을 나누고, context 이름 규칙을 정하고, 매니페스트를 Git으로 관리하고, Kustomize로 환경별 차이를 다루고, 권한(RBAC)으로 실수를 막는 방법입니다.