TECH 으로 돌아가기
TECH HACKER NEWS 오늘 8분 읽기 27 READS

클릭되는 쿠버네티스 TUI, k10s가 노리는 지점

클릭되는 쿠버네티스 TUI, k10s가 노리는 지점
SOURCE IMAGE · HACKER NEWS

쿠버네티스 운영자라면 하루에도 수십 번 클러스터 대시보드를 연다. 대개는 뭔가 불이 붙은 상황에서다. 터미널 기반 TUI인 k9s가 'kubectl get pods'를 반복 타이핑하던 시대를 끝냈다면, 새로 공개된 k10s는 같은 터미널 화면을 마우스로 클릭할 수 있게 만들고, 즉시 검색과 테마, 그리고 현재 컨텍스트를 이해하는 AI를 얹었다. Go로 작성돼 단일 바이너리로 배포되며, 화면을 클릭 가능하게 만드는 바탕에는 Charm 진영의 Bubble Tea·Lip Gloss와 BubbleZone이 쓰였다. 라이선스는 쿠버네티스·Helm·k9s와 같은 Apache-2.0이다.

제작자가 내세우는 설계 원칙은 분명하다. 대시보드에서 중요한 것은 '얼마나 빨리 열리는가'와 '얼마나 적게 외워야 하는가' 두 가지라는 것이다. k10s는 스스로를 k9s보다 '젊고 의도적으로 좁은' 도구로 규정한다. 가장 넓은 기능 표면과 성숙한 플러그인 생태계, 수년간의 운영 실적이 필요하면 k9s를, TUI를 한 번도 열어본 적 없는 동료에게 건네 10초 안에 로그를 스스로 찾게 만들고 싶다면 k10s를 쓰라는 식으로 둘의 역할을 갈라놓는다.

클러스터 없이 먼저 둘러보기

진입 장벽을 낮추는 장치가 오프라인 데모 백엔드다. CrashLoopBackOff 상태까지 포함한 현실적인 샘플 클러스터를 클릭하며 익힐 수 있다. 다만 샘플 데이터가 실제 머신으로 오인되는 일을 막기 위해 기본값이 아니라 옵트인이다. 데모는 별도 '모드'가 아니라 하나의 컨텍스트로 취급돼, 'k10s demo'로 열거나 '/demo'로 어디서든 전환할 수 있고 ':ctx' 목록에도 샘플 데이터라는 설명과 함께 표시된다. 데모가 떠 있는 동안에는 헤더에 DEMO 표식이 붙어 어떤 화면도 실제 클러스터로 착각할 수 없다.

데모가 아닌 일반 실행에서는 kubectl과 동일하게 kubeconfig($KUBECONFIG, 없으면 ~/.kube/config)를 읽어 해당 컨텍스트가 닿을 수 있는 대상만 보여준다. kubeconfig가 없거나 API 서버가 응답하지 않으면 메인 패널에 'No cluster'를 띄우고 들어갈 길을 안내한다. r로 재시도, ':ctx'로 다른 컨텍스트 선택, '/setup'으로 kubectl·kubeconfig 안내 링크를 연결하는 식이다. 설치 스크립트는 macOS·리눅스의 amd64·arm64용 사전 빌드 바이너리를 골라 릴리스 매니페스트의 sha256과 대조한 뒤 /usr/local/bin(권한 문제가 있으면 ~/.local/bin)에 넣는다. 윈도우(amd64)는 바이너리가 함께 배포되지만 설치 스크립트 대신 릴리스 페이지로 안내된다.

리소스 탐색과 AI

화면은 Workloads·Network·Config·Storage·RBAC·Cluster·Custom Resources 범주에 걸쳐 파드, 디플로이먼트, 서비스, 인그레스, 시크릿, 노드, 이벤트 등 30종의 리소스를 다루며 각 항목에 현재 네임스페이스 기준 실시간 행 수를 표시한다. CRD는 별도 설정 없이 자동으로 발견된다. 눈여겨볼 점은 리소스 카운팅 방식이다. 접힌 그룹은 클러스터에 아무것도 묻지 않고, 사이드바에 보이는 종류만 kind당 limit=1 요청으로, 그것도 한 번에 여섯 개씩만 세며 거부된 요청은 기억해 재요청하지 않는다. 그룹의 접힘 상태는 재시작 후에도 유지된다. 확장은 k9s의 plugins.yaml 형식을 그대로 받아들여, 포그라운드·백그라운드 명령 실행이나 확인 요청 같은 자체 액션을 같은 창에서 클릭으로 쓸 수 있게 한다.

AI 기능은 ctrl+a로 켜고 끈다. OpenAI 호환(Groq·Together·OpenRouter·vLLM·Ollama·LM Studio 등)이나 Anthropic 키를 사용자가 직접 넣는 방식이고, 답변은 스크롤·확대·닫기가 가능한 일반 텍스트 뷰로 열린다. 프라이버시 측면에서 중요한 선언은, AI 모드에서 엔터를 누르기 전까지 어떤 클러스터 데이터도 머신을 떠나지 않으며 k10s가 스스로 하는 유일한 외부 호출은 하루 한 번 GitHub에 버전 번호만 묻는 업데이트 확인뿐이라는 점이다. 단, AI API 키는 ~/.k10s/config.yaml에 0600 권한의 평문으로 저장되고 UI에서만 마스킹된다. 이 방식이 환경 정책상 허용되지 않는다면 키를 비워두면 AI 모드는 꺼진 채로 둘 수 있다.

명령 체계는 두 접두사로 단순화돼 있다. '/'는 테마·설정·업데이트 등 k10s 자체를, ':'는 k9s 어휘를 따르는 클러스터 조작을 담당한다. 네임스페이스는 ':ns', 컨텍스트는 ':ctx'이며 ':aliases'가 전체 어휘를 출력한다. '/'나 ':'로 시작하지 않는 입력은 사용자의 $SHELL을 통해 셸 명령으로 실행돼 그 출력이 메인 패널에 뜨는데, 터미널이 붙지 않고 30초로 제한되므로 대화형 셸이 필요하면 파드에서 s를 눌러야 한다. 테마는 tokyo-night을 기본으로 catppuccin-mocha, dracula, nord, gruvbox, solarized, matrix 등 여러 종이 내장돼 T로 순환하거나 '/theme' 피커로 적용하며 보며 고를 수 있고, ~/.k10s/themes에 YAML 팔레트를 넣으면 재빌드 없이 같은 피커에 등장한다.

도입 전에 알아둘 것

실무적으로 가장 솔직하게 받아들여야 할 대목은 성숙도다. 제작자는 모든 라이브 경로가 실제 client-go·kubectl API에 맞춰 구현됐고 페이크 클라이언트셋 기반 테스트로 덮여 있지만, 아직 작성자가 운영 클러스터에서 스모크 테스트를 거치지 않았다고 명시한다. 그래서 kind로 먼저 시험해보라고 권하며, 알려진 한계를 숨기지 않고 로드맵에 적어둔다. 더 많은 리소스 종류, 컬럼 클릭 정렬, 다중 선택 일괄 삭제, 로그 스트림 내 grep, 저장된 뷰 등이 다음 후보로 올라 있다. 요컨대 k10s는 k9s를 대체하려는 물건이 아니라, 클러스터를 들여다보는 일이 더 이상 '하루 중 성가신 부분'이 되지 않도록 진입 장벽을 낮춘 보완재에 가깝다. TUI에 익숙지 않은 팀원에게 장애 대응 도구를 쥐여줘야 하는 조직이라면, 평가판으로 시도해볼 만한 선택지다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://github.com/p10node/k10s
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...