DevOps, Infra

Lens 대신 k9s 를 사용해보자

seulseul 2023. 7. 9. 21:46

 
Lens 를 사용하고 있었는데, (LENS는 쿠버네티스를 모니터링 및 관리할 수 있는 IDE이다.) 개발중 마우스에 손이 가는걸 매우 귀찮아하는 타입이고, 노트북을 옮겨다닐때마다 로그인을 해야하는 것도 귀찮아서  k9s 를 쓰기 시작했다.

 

k9s

  • Kubernetes 클러스터의 Pod, Service, Deployment 등의 리소스를 실시간으로 모니터링
  • 특정 오브젝트를 검색하고 필터링하여 보기 쉽게 표시
  • 노드, 네임스페이스, 레이블 등의 Kubernetes 오브젝트를 시각화하고 관리

k9s 설치

# mac
brew install k9s

# wsl (window) or ubuntu
# 최신버전 확인 : https://github.com/derailed/k9s/releases
wget https://github.com/derailed/k9s/releases/download/v0.27.4/k9s_Linux_amd64.tar.gz
tar xvf k9s_Linux_x86_64.tar.gz
sudo mv k9s /usr/local/bin
# 실행
k9s
# OS 버전 확인
$ dpkg -s libc6 | grep Arch
Architecture: amd64
Multi-Arch: same

k9s

k9s 사용법

리소스 조회

:pod

: (콜론)을 입력후 kubernetes 리소스명을 입력

# pod 조회
:pod
# ingress 조회
:ingress
# service 조회
:svc

사용 가능한 단축키 조회

?

? 를 치면 사용가능한 단축키를 조회할수 있으며 ESC 를 누르면 다시 뒤로 갈수 있다.
 

  • 숫자키 ( 0 / 1 / 2 ... ) 를 이용하여 namespace 전환
  • shift+<각 열(column)의 첫번째 글자>로 정렬
  • shift+n > 이름(Name) 순 정렬
  • shift+c/m > CPU/Memory 순 정렬
  • shift+a > 생성시간(Age) 순 정렬

Key Bindings

참고 https://k9scli.io/topics/commands/

Action Command Comment
도움말 표시 ?  
클러스터에서 사용가능한 리소스 나열 ctrl-a  
k9s 종료 :q, ctrl + c  
Kubernetes 리소스 보기 :po⏎ accepts singular, plural, short-name or alias ie pod or pods
지정된 네임스페이스에서 Kubernetes 리소스 보기 :alias namespace⏎  
필터가 지정된 리소스 보기를 필터링 /filter⏎ Regex2 supported ie `fred
역 정규식 필터 /! filter⏎ Keep everything that doesn't match.
레이블로 리소스 보기 필터링 /-l label-selector⏎  
Fuzzy find a resource given a filter /-f filter⏎  
보기/명령/필터 모드에서 빠져나옴 <esc>  
상세설명 보기, Shell 접근, 편집, 로그 확인 d , s , e , l ,...  
다른 Kubernetes 컨텍스트를 보고 전환하려면(Pod 보기) :ctx⏎  
다른 Kubernetes 컨텍스트를 보고 직접 전환하려면(마지막으로 사용한 보기) :ctx context-name⏎  
다른 Kubernetes 네임스페이스를 보고 전환하려면 :ns⏎  
저장된 모든 리소스를 보려면 :screendump or sd⏎  
리소스 삭제 (실제 리소스 지워집니다.) ctrl + d  
리소스 삭제 (force) ctrl + k  
넓은 열 (kubectl ... -o wide) ctrl + w  
오류 상태인 리소스 보기 ctrl + z  
Launch pulses view :pulses or pu⏎  
Launch XRay view :xray RESOURCE [NAMESPACE]⏎ RESOURCE can be one of po, svc, dp, rs, sts, ds, NAMESPACE is optional
Launch Popeye view :popeye or pop⏎ See popeye

k9s 시각화

## metric 서버 설치

1. 적용 가능한 kubernetes 버전 확인
https://github.com/kubernetes-sigs/metrics-server#compatibility-matrix 에 접속하면 metric-server 버전과 호환되는 Kubernetes 버전을 확인할 수 있다.

2. metric server 설치
helm repo add metrics-server https://kubernetes-sigs.github.io/metrics-server/
helm repo update
helm upgrade --install --set args={--kubelet-insecure-tls} metrics-server metrics-server/metrics-server --namespace kube-system

일반적인 관리화면외에도, 시각화된 현황을 보여주는 pulse, tree형식으로 리소스를 보여주는 xray, 보안스캔결과인 popeye 화면을 제공해준다.

pulse (pu)
:pulse 또는 :pu로 진입
간단한 리소스 시각화를 해준다
k top 명령어와 비슷하게, 작동에는 metric-server 설치가 필요하다.
 

pulse&amp;nbsp;(pu)

xray
:xray <리소스명>으로 진입
특정 리소스에 대해서, ns/dependancy에 따라 관련있는 리소스들을 tree 형식으로 보여준다
pods를 기준으로본다면, ns별 파드들과, 연관 cm,secret,sa등을 종합적으로 볼 수 있다.

xray

popeye
:popeye 또는 :pop으로 진입
클러스터 취약점 진단 및 점수화하여 보여준다
resource limit / probe / security context / etc …

popeye