
kubectl 명령어, 오늘도 몇 번 치셨나요?
쿠버네티스를 다루다 보면 하루에도 같은 명령어를 수십 번씩 반복하게 돼요. kubectl get pods로 목록을 보고, 이상한 파드가 있으면 이름을 복사해서 kubectl describe pod를 치고, 다시 kubectl logs를 치고… 파드 이름은 또 왜 그렇게 긴지요. 이런 반복을 줄이려고 k9s를 쓰는 분들이 많을 텐데요, 이번에 K10s라는 새 오픈소스 쿠버네티스 TUI가 공개됐어요. Go 언어와 Bubble Tea 프레임워크로 만들었고, 가장 큰 특징은 이름 그대로 마우스로 클릭할 수 있다는 점이에요.
이름도 재밌어요. kubernetes를 k8s라고 줄여 부르는 건 k와 s 사이에 글자가 8개 있어서인데요, k9s는 여기에 개(canine)를 섞은 말장난이에요. K10s는 그 '다음 숫자'라는 느낌으로 지은 것 같아요.
TUI가 뭐냐면
TUI는 Terminal User Interface의 줄임말로, 터미널 안에서 돌아가는 화면형 프로그램을 말해요. 명령어를 한 줄씩 치고 결과를 받는 일반 CLI와 달리, 화면 전체를 쓰면서 메뉴, 표, 패널을 보여 주죠. htop이나 vim, lazygit을 떠올리시면 돼요.
TUI의 장점은 가볍고 어디서든 돌아간다는 거예요. SSH로 접속한 배스천 서버나 GUI가 없는 리눅스 환경에서도 그냥 실행하면 되거든요. 단점은 배우기 어렵다는 거예요. k9s만 해도 :pod로 리소스 전환, /로 필터, l로 로그, s로 셸 접속, Ctrl+D로 삭제처럼 단축키를 외워야 제대로 쓸 수 있어요. 손에 익으면 정말 빠르지만, 처음 쓰는 사람에겐 벽이 꽤 높아요.
터미널에서 클릭이 된다고?
“터미널에서 마우스가 돼?” 싶으실 텐데, 요즘 터미널은 대부분 마우스 이벤트를 프로그램에 넘겨줄 수 있어요. 프로그램이 특별한 제어 문자(이스케이프 시퀀스)로 “마우스 신호 좀 알려줘”라고 요청하면, 터미널이 클릭한 위치를 좌표로 넘겨주는 방식이에요. vim에서 마우스 모드를 켜면 클릭으로 커서가 움직이는 것도 같은 원리예요.
Bubble Tea에서는 프로그램을 시작할 때 tea.WithMouseCellMotion() 같은 옵션을 주면 마우스 이벤트를 메시지로 받을 수 있어요. K10s는 이런 기능을 바탕으로, 단축키를 몰라도 목록을 클릭하고 화면을 옮겨 다닐 수 있게 만든 거예요. 키보드파와 마우스파를 모두 품으려는 시도라고 볼 수 있죠.
Bubble Tea는 어떻게 동작할까
Bubble Tea는 Charm 팀이 만든 Go용 TUI 프레임워크인데요, Elm 아키텍처라는 구조를 따라요. 이게 뭐냐면, 프로그램을 딱 세 부분으로 나누는 거예요.
- Model: 지금 화면의 상태예요. 어떤 파드 목록을 보고 있는지, 몇 번째 줄이 선택됐는지 같은 정보죠.
- Update: 키 입력, 마우스 클릭, 타이머, API 응답 같은 '메시지'가 들어오면 상태를 어떻게 바꿀지 정해요.
- View: 현재 상태를 받아서 화면에 그릴 문자열을 만들어요.
- k9s: 이 분야의 대표 도구예요. tview라는 다른 TUI 라이브러리를 기반으로 하고, 기능이 아주 풍부하고 커뮤니티도 커요. 키보드 중심이라 숙련자에게는 최고예요.
- Lens / Freelens: 데스크톱 GUI 앱이에요. 직관적이고 보기 좋지만 상대적으로 무겁고, SSH 환경에서는 쓸 수 없어요.
- Headlamp: 웹 브라우저로 보는 쿠버네티스 UI로, 쿠버네티스 공식 커뮤니티 쪽에서 관리하고 있어요.
React를 써 보셨다면 '상태가 바뀌면 화면을 다시 그린다'는 개념이 익숙하실 거예요. 이 구조 덕분에 코드의 동작을 예측하기 쉽고 테스트하기도 편해요. Charm은 표·리스트·입력창 같은 컴포넌트를 모은 Bubbles와 색·레이아웃을 꾸미는 Lip Gloss도 함께 제공해서, 그럴듯한 TUI를 금방 만들 수 있어요.
이런 쿠버네티스 도구는 보통 내 PC의 kubeconfig 파일을 읽어서 클러스터 API 서버에 접속해요. 그리고 Go 공식 클라이언트 라이브러리(client-go)로 리소스를 조회하거나, 변경 사항을 실시간으로 받아(watch) 화면을 갱신하죠.
다른 도구들과 비교하면
한국 개발자에게 주는 시사점
쿠버네티스를 막 배우기 시작한 주니어나 가끔씩만 클러스터를 들여다보는 백엔드 개발자라면, 단축키 부담이 적은 K10s 같은 도구로 시작하기 좋아요. 다만 운영 클러스터에 붙일 때는 조심하세요. 클릭 한 번으로 리소스를 지울 수 있는 도구라면, 처음에는 읽기 전용 권한(RBAC)을 걸어 둔 kubeconfig로 써 보면서 삭제 전에 확인 창이 제대로 뜨는지부터 확인하는 게 안전해요.
그리고 이 프로젝트는 Go와 Bubble Tea를 공부하기 좋은 교재이기도 해요. 사내 배포 스크립트나 운영 점검 도구를 TUI로 만들어 보고 싶었다면, 실제 쿠버네티스 API와 연동된 코드를 읽어 보는 것만큼 좋은 공부는 없거든요.
마무리
한 줄 정리: K10s는 'TUI는 단축키를 외워야 쓴다'는 고정관념을 마우스 클릭으로 깨 보려는 시도예요.
여러분은 쿠버네티스를 주로 어떻게 다루시나요? kubectl만 쓰는 쪽, k9s 단축키파, GUI파 중 어디에 속하는지, 그리고 TUI에 마우스 지원이 정말 필요하다고 보시는지 궁금해요.
🔗 출처: Hacker News