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 사용법
리소스 조회
: (콜론)을 입력후 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 설치가 필요하다.
xray
:xray <리소스명>으로 진입
특정 리소스에 대해서, ns/dependancy에 따라 관련있는 리소스들을 tree 형식으로 보여준다
pods를 기준으로본다면, ns별 파드들과, 연관 cm,secret,sa등을 종합적으로 볼 수 있다.
popeye
:popeye 또는 :pop으로 진입
클러스터 취약점 진단 및 점수화하여 보여준다
resource limit / probe / security context / etc …
'DevOps, Infra' 카테고리의 다른 글
[ArgoCD] helm chart 배포하는 방법 (0) | 2023.11.12 |
---|---|
[CI/CD] Advanced GitLab CI, gitlab-ci.yml (0) | 2023.09.14 |
Linux 에서 정상적으로 프로세스를 중지하는 방법, Graceful Shutdown (0) | 2023.03.13 |
[Ansible] include vs import (0) | 2023.03.09 |
vagrant multi machine (multi vm) (0) | 2023.02.24 |