13년차의 서버실

서버, 인프라, 홈랩 기술 블로그

[Kubernetes] 클라이언트 비교: Lens, K9s, kubectl 선택 가이드

[Kubernetes] 클라이언트 비교: Lens, K9s, kubectl 선택 가이드

Kubernetes 클라이언트 비교가 왜 중요하냐고 물으시면, 운영 환경이 조금만 커져도 답이 바로 나옵니다. 파드(Pod, 컨테이너 실행 단위) 하나 상태 보는 건 쉬운데, 네임스페이스(Namespace, 리소스 격리 단위) 여러 개를 오가고 로그를 보고 이벤트를 확인하고 배포 상태까지 챙기려면 Kubernetes 관리 도구 선택이 꽤 중요하거든요. 저도 처음엔 kubectl만 붙잡고 버텼었는데, 실제로 써보니까 Lens, K9s, kubectl은 서로 경쟁 관계라기보다 역할이 다른 도구에 더 가깝더라고요. 오늘은 제가 홈랩과 실무에서 겪었던 흐름을 바탕으로, 어떤 상황에서 무엇을 고르면 덜 삽질하는지 정리해보겠습니다.

특히 이 글은 단순한 스펙 나열이 아니라, Kubernetes 클라이언트 비교 관점에서 실제 운영 감각을 중심으로 풀어볼 생각입니다. 혹시 여러분도 'GUI가 편하긴 한데 결국 터미널로 돌아오게 되던데요?' 같은 경험 있으신가요? 저도 딱 그랬습니다 ㅎㅎ

Lens, K9s, kubectl이 각각 어느 레이어에서 관리 경험을 제공하는지 한눈에 보여주는 개요 이미지입니다.

Kubernetes 클라이언트 비교, 먼저 큰 그림부터 보겠습니다

쉽게 말해 이렇습니다.

  • kubectl: Kubernetes 공식 CLI(Command Line Interface, 명령줄 도구)입니다.
  • K9s: 터미널 기반 TUI(Text User Interface, 텍스트 UI)로 클러스터 상태를 빠르게 탐색하게 도와줍니다.
  • Lens: GUI(Graphical User Interface, 그래픽 화면 기반) 중심으로 리소스를 시각적으로 관리하기 좋습니다.

여기서 중요한 포인트가 하나 있습니다. 세 도구 모두 결국 kubeconfig(Kubernetes 접속 설정 파일)를 기반으로 클러스터에 접근하는 경우가 많다는 점입니다. 즉, 접근 권한과 컨텍스트(context, 현재 대상 클러스터/네임스페이스 설정)가 핵심이고, 겉모습만 다르다고 생각하시면 이해가 빠릅니다.

Lens, K9s, kubectl 차이점은 어디서 체감될까요?

1. kubectl 사용법이 기본기가 되는 이유

kubectl은 결국 기준점입니다. Deployment(디플로이먼트, 배포 리소스), Service(서비스, 네트워크 노출 리소스), Ingress(인그레스, 외부 트래픽 진입점) 같은 객체를 가장 정확하게 다루기 좋거든요. 자동화 스크립트나 CI/CD에서도 거의 기본 전제로 깔립니다.

제가 직접 해보니 장애 상황에서는 결국 kubectl로 돌아오게 되더라고요. 이유는 단순합니다. 로그, describe, events, yaml 출력까지 가장 세밀하게 볼 수 있기 때문입니다.

2. K9s가 빛나는 순간

K9s는 '터미널 안에서 빠르게 둘러보는 맛'이 있습니다. 방향키와 단축키로 파드 이동하고, 로그 보고, 리소스 상태를 훑는 흐름이 상당히 빠릅니다. SSH로 바로 들어가서 점검하는 환경에서는 특히 강합니다. GUI가 없는 서버 점검 환경에서는 진짜 편하더라고요.

3. Lens가 편한 이유

Lens는 시각화가 좋습니다. 여러 리소스를 화면에서 관계적으로 보기가 쉽고, 초보자도 진입 장벽이 낮은 편입니다. 특히 처음 Kubernetes를 접하는 분들은 YAML만 보는 것보다 상태를 한 화면에서 확인하는 방식이 훨씬 이해가 빠를 수 있습니다.

다만 GUI가 편하다고 해서 운영의 본질이 쉬워지는 건 아닙니다. 여기서 많이 헷갈리시더라고요. 화면은 친절하지만, 권한 문제나 리소스 의미를 모르면 결국 판단은 사람이 해야 하거든요.

쿠버네티스 관리 도구 비교 표로 정리해보겠습니다

항목 kubectl K9s Lens
형태 CLI TUI GUI
학습 난이도 초반엔 높음 중간 낮음
속도 익숙하면 매우 빠름 탐색이 빠름 화면 기반 확인이 편함
자동화 적합성 매우 높음 낮음 낮음
로그/이벤트 심층 분석 강함 강함 보통 이상
원격 SSH 환경 매우 적합 매우 적합 제한적
입문자 친화성 낮음 중간 높음
추천 대상 운영자, 자동화 담당자 터미널 선호 운영자 초보자, 시각적 관리 선호자

Lens K9s 비교만 놓고 보면, 초반 적응은 Lens가 쉽고 장기 운영 효율은 K9s가 더 손에 붙는 경우가 많습니다. 하지만 kubectl이 빠지면 결국 한계가 옵니다. 이건 꽤 중요합니다.

실전 구현: kubectl, K9s, Lens를 같은 흐름에서 써보기

이론만 보면 감이 잘 안 오죠. 그래서 간단한 점검 흐름으로 묶어보겠습니다. 예시는 특정 배포가 정상인지 확인하는 상황입니다.

  1. 현재 컨텍스트와 네임스페이스를 확인합니다.
  2. 배포와 파드 상태를 봅니다.
  3. 문제가 있는 파드 로그와 이벤트를 확인합니다.
  4. 필요하면 GUI나 TUI에서 리소스 관계를 함께 봅니다.

1. kubectl로 기본 점검하기

kubectl config get-contexts
kubectl config current-context
kubectl get ns
kubectl get deploy -A
kubectl get pods -A -o wide

처음엔 이게 뭔가 싶었는데, 사실 운영자는 이 네 줄만 자주 써도 클러스터 현재 상태를 꽤 빨리 파악할 수 있습니다. 특히 current-context를 먼저 보는 습관은 꼭 들이시는 걸 추천합니다. 잘못된 클러스터에 명령 넣는 사고, 생각보다 자주 납니다.

2. 특정 애플리케이션 문제 좁혀가기

kubectl get pods -n production
kubectl describe pod myapp-abc123 -n production
kubectl logs myapp-abc123 -n production --tail=100
kubectl get events -n production --sort-by=.metadata.creationTimestamp

실제로 써보니까 장애 대응에서 제일 중요한 건 '무엇이 실패했는가'보다 '어디서부터 실패했는가'를 빠르게 찾는 거였습니다. describe 결과에서 이벤트를 보고, 로그에서 에러 패턴을 보고, 리소스 부족인지 이미지 풀(image pull) 실패인지 분리하는 게 핵심입니다.

Kubernetes 클라이언트 비교에서 kubectl과 K9s 사용 장면 이미지

운영자가 터미널 기반으로 파드 상태를 점검하고 로그를 추적하는 실전 흐름을 보여주는 이미지입니다.

3. K9s로 빠르게 탐색하기

k9s

K9s는 실행 자체는 단순합니다. 다만 익숙해지려면 머릿속에 동선이 생겨야 합니다. 보통 저는 이런 순서로 봤습니다.

  1. 네임스페이스를 맞춥니다.
  2. Pods 화면에서 재시작 횟수와 상태를 봅니다.
  3. 문제 파드를 선택해 로그와 describe 성격의 정보를 확인합니다.
  4. 리소스 사용량이나 관련 객체로 이동합니다.

SSH 세션 하나에서 다 처리되는 게 장점입니다. 홈랩에서 VM 여러 대 만질 때는 이 방식이 정말 편했어요. 마우스 손 안 대도 되니까 흐름이 끊기지 않거든요.

4. Lens로 시각적으로 확인하기

Lens는 클러스터를 등록한 뒤 Workloads(워크로드), Pods, Events, Config, Networking 같은 메뉴를 통해 탐색하는 방식입니다. 제가 초급자 분들 온보딩할 때는 Lens를 먼저 보여드린 적이 많았습니다. '아, Kubernetes 안에서 이런 객체들이 연결되는구나'가 빨리 보이기 때문입니다.

예를 들어 서비스 장애가 났을 때, 파드만 보는 게 아니라 서비스와 엔드포인트(endpoint), 인그레스까지 같이 봐야 할 때가 있거든요. 이때 GUI의 장점이 분명히 있습니다.

Kubernetes 클라이언트 비교를 위한 GUI 관리 도구 화면 이미지

워크로드, 서비스, 인그레스 관계를 시각적으로 확인하는 GUI 관리 흐름을 표현한 이미지입니다.

어떤 사람에게 어떤 도구가 맞을까요?

kubectl이 맞는 경우

  • 운영 자동화와 스크립트 작업이 많습니다.
  • CI/CD 파이프라인과 연동해야 합니다.
  • 장애 원인을 깊게 파고드는 편입니다.
  • Kubernetes 클라이언트 도구의 기준 문법을 익히고 싶습니다.

K9s가 맞는 경우

  • 터미널 작업이 익숙합니다.
  • 원격 서버나 SSH 환경에서 자주 일합니다.
  • 클러스터 탐색 속도를 중요하게 봅니다.
  • 마우스보다 키보드가 편합니다.

Lens가 맞는 경우

  • Kubernetes 입문 단계입니다.
  • 팀원들과 화면 공유하며 상태를 설명해야 합니다.
  • 리소스 관계를 시각적으로 보는 게 편합니다.
  • 한눈에 파악되는 대시보드 느낌을 선호합니다.

⚠️ 실제로 자주 겪는 문제와 해결 방법

여기서는 제가 삽질 좀 했던 부분을 솔직하게 적어보겠습니다. 이런 건 문서보다 경험에서 더 빨리 배우게 되더라고요.

1. 컨텍스트(context) 착각

가장 위험합니다. 개발 클러스터인 줄 알고 운영 클러스터를 보고 있던 적, 저도 있었습니다. 다행히 큰 사고는 안 났지만 식은땀이 나더라고요.

kubectl config current-context
kubectl config view --minify

명령 전후로 현재 컨텍스트를 확인하는 습관이 중요합니다. 특히 여러 kubeconfig를 합쳐 쓰는 환경이라면 더 그렇습니다.

2. 권한 문제(RBAC, Role-Based Access Control)

Lens든 K9s든 kubectl이든, 권한이 없으면 안 보이거나 실패합니다. GUI가 예쁘게 보여도 백엔드는 결국 API 서버 권한 체크를 거치거든요.

kubectl auth can-i get pods -n production
kubectl auth can-i list secrets -n production

화면 문제처럼 보이는데 사실은 권한 문제인 경우가 꽤 많습니다. 이거 진짜 자주 나옵니다.

3. 로그만 보고 끝내는 실수

처음엔 로그만 파봤었는데, 나중에 보니 이벤트(event) 쪽이 더 직접적인 경우가 많았습니다. 예를 들어 스케줄링 실패, 이미지 풀 실패, 프로브(probe) 실패 같은 건 이벤트에 힌트가 잘 남거든요.

4. GUI 의존도가 너무 높아지는 문제

Lens가 편해서 계속 쓰다 보면, 막상 터미널만 가능한 환경에서 당황할 수 있습니다. 그래서 제 추천은 이렇습니다. 입문은 Lens, 숙련은 K9s, 기준은 kubectl. 이 조합이 제일 덜 흔들렸습니다.

검증: 실제로 무엇이 더 빨랐나?

정량 벤치마크처럼 수치를 들이대고 싶진 않습니다. 확실하지 않은 숫자는 오히려 판단을 흐리거든요. 대신 체감 기준으로 말씀드리면 이렇습니다.

  • 처음 구조를 이해하는 속도는 Lens가 빨랐습니다.
  • 운영 중 다수 리소스를 훑는 속도는 K9s가 좋았습니다.
  • 정확한 원인 분석과 재현 가능한 절차 정리는 kubectl이 가장 강했습니다.

제가 홈랩에서 여러 네임스페이스를 오가며 점검할 때도 비슷했습니다. 처음 상태 확인은 K9s나 Lens가 편했는데, 최종 확인 커맨드와 기록은 결국 kubectl로 남기게 되더라고요. 여기서 중요한 포인트! 빠른 확인 도구와 정확한 제어 도구는 다를 수 있습니다.

Kubernetes 클라이언트 비교 결과를 정리한 운영 대시보드 이미지

파드 상태, 이벤트, 로그 확인 결과가 정리된 운영 검증 화면을 묘사한 이미지입니다.

정리: 제 선택은 하나가 아니라 조합입니다

제 결론은 꽤 명확합니다. Kubernetes 클라이언트 비교를 할 때 하나만 고르려고 하면 오히려 답이 꼬입니다. kubectl은 반드시 익혀야 하고, 그 위에 K9s 또는 Lens를 얹는 방식이 가장 현실적입니다.

  • 초보자라면: Lens로 구조를 익히고 kubectl 사용법을 함께 배우세요.
  • 터미널 친화적 운영자라면: K9s와 kubectl 조합이 오래 갑니다.
  • 자동화까지 고려한다면: kubectl 중심 사고는 필수입니다.

저도 처음엔 '어차피 GUI 있으면 되지 않나?' 싶었는데, 실제로 써보니까 클러스터를 깊게 이해할수록 kubectl 비중이 커졌습니다. 반대로 팀 협업이나 빠른 시각 확인은 Lens가 좋았고요. K9s는 그 사이에서 정말 실용적이었습니다. 이 셋은 배척할 대상이 아니라, 상황에 따라 꺼내 쓰는 공구함에 더 가깝습니다.

세 도구의 장단점과 추천 대상, 사용 시나리오를 한 장으로 요약한 비교 인포그래픽 이미지입니다.

FAQ: 많이 받는 질문

Q1. Kubernetes 입문자는 무엇부터 시작하면 좋을까요?

Lens로 객체 관계를 익히면서 kubectl 기본 명령을 같이 익히는 걸 추천합니다. 시각적 이해와 명령 기반 이해를 같이 가져가야 오래 갑니다.

Q2. Lens K9s 비교에서 더 운영자다운 도구는 무엇인가요?

터미널에 익숙하다면 K9s가 더 손에 붙을 가능성이 큽니다. 다만 팀 내 공유와 설명은 Lens가 더 편할 수 있습니다.

Q3. kubectl만으로도 충분한가요?

충분합니다. 다만 충분하다는 것과 편하다는 것은 다릅니다. 그래서 많은 분들이 K9s나 Lens를 보조 도구로 함께 씁니다.

마무리

오늘은 Kubernetes 클라이언트 비교라는 주제로 Lens, K9s, kubectl을 함께 봤습니다. 정답은 사람마다 조금 다르지만, 기준점은 분명합니다. 제어와 자동화는 kubectl, 빠른 탐색은 K9s, 시각적 이해는 Lens입니다. 이 프레임만 잡아도 도구 선택이 훨씬 쉬워집니다.

다음 글에서는 kubectl 사용법을 조금 더 실전적으로 파서, 운영자가 자주 쓰는 조회 명령과 로그/이벤트 확인 루틴을 따로 정리해볼 예정입니다. 이전 글에서 다뤘던 홈랩 클러스터 구성 내용과 함께 보시면 더 이해가 잘 되실 겁니다. 혹시 지금 어떤 도구를 메인으로 쓰고 계신가요? 써보면 취향도 분명히 갈리더라고요.