- Published on
- Authors
- Name
- 곽선생
- @neochime
1. 개요
K9s는 Kubernetes 클러스터를 관리하기 위한 CLI 기반 도구로, 실시간 모니터링, 리소스 탐색, 문제 진단 등 다양한 기능을 제공합니다.
- 공식 웹사이트: https://k9scli.io
k9s를 이용하면 kubectl로 일일이 커맨드를 작성하는 게 아니라 UI로 쿠버네티스를 빠르게 이용할 수 있어서 간편하게 클러스터 관리를 할 수 있습니다.
2. 주요 특징
- 실시간 리소스 모니터링: Kubernetes 리소스 상태 및 로그를 실시간으로 확인
- 간편한 네비게이션: 직관적인 CLI 인터페이스와 키보드 중심 탐색
- YAML 편집 및 관리: 리소스 YAML 파일의 직접 수정 및 적용
- 다중 클러스터 지원: 여러 클러스터를 손쉽게 전환하며 관리 가능
- 확장성: 설정 커스터마이징과 플러그인 지원
- 통합 도구 지원: Pulse, Xray, Popeye 등의 추가 기능 제공
3. 설치 방법
3.1 플랫폼별 설치
MacOS
brew install k9s
Linux
curl -sS https://webinstall.dev/k9s | bash
Windows
- K9s GitHub 페이지에서 최신 릴리스 다운로드.
4. 기본 사용법
4.1 실행 및 탐색
- 실행:
k9s
명령어로 실행. - 리소스 탐색:
:
입력 후 리소스 이름 입력 (예::pod
,:svc
).
4.2 주요 작업
- 리소스 상세보기: 선택한 리소스의 세부 정보 확인.
- YAML 편집:
e
키를 눌러 리소스 YAML 수정.
5. 주요 단축키
단축키 | 기능 |
---|---|
/ | 리소스 검색 |
: | 리소스 종류 전환 (예: :pod ) |
Enter | 선택한 리소스의 세부 정보 보기 |
e | 리소스 YAML 편집 |
d | 리소스 삭제 |
q | 현재 화면 종료 |
Ctrl+a | 모든 리소스 보기 |
Ctrl+f | 리소스 필터링 |
6. K9s와 kubectl 명령어 비교
작업 유형 | kubectl 명령어 예시 | K9s 사용 방법 |
---|---|---|
Pod 목록 보기 | kubectl get pods | :pod 입력 후 Enter |
Pod 상세 정보 보기 | kubectl describe pod <pod-name> | 해당 Pod 선택 후 Enter |
Pod 로그 보기 | kubectl logs <pod-name> | 해당 Pod 선택 후 l |
Pod 삭제 | kubectl delete pod <pod-name> | 해당 Pod 선택 후 d |
Deployment 목록 보기 | kubectl get deployments | :deploy 입력 후 Enter |
Deployment 상세 보기 | kubectl describe deployment <deploy-name> | 해당 Deployment 선택 후 Enter |
YAML 편집 | kubectl edit <resource-type> <name> | 해당 리소스 선택 후 e |
네임스페이스 변경 | kubectl config set-context --namespace=<ns> | :ns 입력 후 네임스페이스 선택 |
클러스터 컨텍스트 변경 | kubectl config use-context <context> | :ctx 입력 후 컨텍스트 선택 |
리소스 생성 | kubectl apply -f <file.yaml> | YAML 파일을 CLI 외부에서 생성 후 적용 |
7. Pulse, Xray, Popeye 기능
7.1 Pulse
- 목적: 클러스터 리소스의 전반적인 상태를 실시간으로 모니터링
- 사용법:
:pulse
- 실행 후 대시보드에서 기본적으로 Pulse 뷰 조회
- 대시보드 상단에서 클러스터 요약 데이터를 확인 가능
- 기능:
- 실시간 클러스터 상태 시각화
- 클러스터의 리소스 사용량, 네임스페이스 상태, 파드 상태 등의 주요 정보 요약
- 상태 모니터링
- 파드, 노드, 네임스페이스, 워크로드 등 클러스터에서 실행 중인 리소스의 상태를 실시간으로 확인 가능
- 경고 및 오류 탐지
- CrashLoopBackOff, Pending 상태와 같은 이슈를 한눈에 파악
- 실시간 클러스터 상태 시각화
7.2 Xray
- 목적: 리소스 간 관계를 시각화하여 종속성 및 상태 파악
- 사용법:
:xray <ressource>
- 특정 네임스페이스나 리소스를 지정하여 계층 뷰를 탐색. 예: :xray deploy로 디플로이먼트 기반 뷰를 확인.
- 기능:
- 리소스 종속성 탐색
- 파드, 서비스, 디플로이먼트, 컨피그맵, 시크릿 등 Kubernetes 리소스 간의 관계를 트리 구조로 표시.
- 문제 탐지
- 잘못된 매핑이나 누락된 리소스를 쉽게 파악할 수 있음. 예를 들어, 특정 서비스가 제대로 연결되지 않은 경우 표시됨.
- 상세 정보 확인
- 리소스를 선택하면 해당 리소스의 메타데이터, 라벨, 어노테이션 등을 확인 가능
- 리소스 종속성 탐색
7.3 Popeye
- 목적: 클러스터 구성 및 설정 진단.
- 사용법:
:popeye
- 기능:
리소스 상태 분석
- 클러스터 내 리소스의 설정 오류나 비효율성을 스캔합니다. 예를 들어, 사용되지 않는 ConfigMap, 시크릿, 레이블 등이 감지됨
베스트 프랙티스 점검
- Kubernetes 리소스가 모범 사례를 따르고 있는지 확인. CPU/메모리 리소스 요청 및 제한 설정, 태그 누락 등의 문제를 파악
점수화된 리포트
- 클러스터 상태를 점수로 요약하여 전반적인 상태를 정량적으로 이해할 수 있게 제공
8. 활용 팁
8.1 설정 파일 커스터마이징
$HOME/.k9s/config.yml
파일 수정으로 개인화된 환경 구성
8.2 클러스터 전환
kubectl config use-context
명령어와 함께 사용
8.3 Popeye 진단 활용
- 정기적으로 Popeye 실행하여 클러스터 상태 점검
8.4 K9s 단축키 연습
- K9s에서 제공하는 다양한 단축키를 적극적으로 활용하여 빠른 작업 속도 가능
- 잘 모르는 단축키는
?
키를 눌러 바로 확인 가능
8.5 Log View 커스터마이징
- Pod 로그 확인 시 필터를 추가하여 필요한 정보를 빠르게 추출
- 예: 특정 키워드 검색을 위해
/
입력 후 검색어 입력
- 예: 특정 키워드 검색을 위해
8.6 사용자 정의 리소스 뷰
- 커스터마이즈된 리소스 뷰를 생성하여 자주 확인하는 정보를 한 화면에서 관리
- 예: 특정 네임스페이스 또는 라벨 기반 필터링.
8.7 고급 필터링 활용
Ctrl+f
를 사용하여 특정 조건의 리소스를 빠르게 필터링- 예: 특정 상태(Pending, Running)만 필터링
8.8 명령어 출력 저장
Ctrl+s
를 눌러 현재 화면의 데이터를 파일로 저장 가능- 로그나 리소스 상태를 기록해야 하는 경우 유용