관리 메뉴

피터의 개발이야기

[kubernetes] k9s 설치 및 사용법 본문

Kubernetes/kube 개발환경

[kubernetes] k9s 설치 및 사용법

기록하는 백앤드개발자 2024. 3. 21. 00:35
반응형

https://k9scli.io/

ㅁ 관련 글

ㅇ [kubernetes] 개발환경 목차

 Kubernetes를 위한 최고의 도구는 무엇입니까?

 

ㅁ 개요

   K9s는 Kubernetes 작업을 정말 쉽고 빠르고 안전하게 만들어주는 오픈 소스 명령줄 도구이다. 터미널 기반으로 UI를 통해 kubectl 명령어를 입력하지 않아도 직관적으로 작업을 수행할 수 있다. UI를 통해 kubernetes의 리소스를 생성, 업데이트, 로깅하고 제거하는 방법에 대해서 알아보았다.

 

update...

[kubernetes] k9s의 xray, pluses 기능

k9s의 새로운 기능인 xray, pluses 기능을 사용하기 위해 업그레이드 과정과 신규 기능에 대해서 설명하였습니다.

 

ㅁ k9s 설치

 참조페이지 이동은 여기.  Linux, Windows 및 Mac용 바이너리는 릴리스 페이지에서 다운 받아서 설치할 수 있다. 주 사용 환경인 맥과 ec2 환경에서 설치해 보았다.

 

 ㅇ MacOS

brew install k9s

  - brew를 이용해 간단하게 설치를 하였고 커멘트 상에서 k9s 입력하여 메인 화면을 실행하였다.

 

  

ㅇ Linux

# 폴더 생성
$ mkdir k9s; cd k9s

# 다운로드
$ wget https://github.com/derailed/k9s/releases/download/v0.26.7/k9s_Linux_x86_64.tar.gz

# 압축해제
$ tar zxvf k9s_Linux_x86_64.tar.gz

# 실행 path 이동
$ sudo mv k9s /usr/local/bin/k9s

-설치 완료 후 설치 정보를 확인하였다.

 

ㅁ CLI 인수

K9s CLI는 다른 구성으로 도구를 시작하는 데 사용할 수 있는 옵션을 제공한다.

# List all available CLI options
k9s help

# Get info about K9s runtime (logs, configs, etc..)
k9s info

# Run K9s in a given namespace.
k9s -n mycoolns

# Run K9s and launch in pod view via the pod command.
k9s -c pod

# Start K9s in a non default KubeConfig context
k9s --context coolCtx

# Start K9s in readonly mode - with all modification commands disabled
k9s --readonly

 

 

ㅁ 메인 화면

 ㅇ 학습을 위한 k8s-peterica의 전체 pod 정보를 확인할 수 있다.

 ㅇ 숫자 0을 입력하면 전체 pod 정보를, 숫자 1을 입력하면 default 의 pod정보를 확인 할 수 있다.

 ㅇ클러스터의 CPU 3%와 메모리 사용량 18%를 확인 할 수 있다.

 ㅇ k8s의 버젼 정보는 v1.22.13-eks-15b7612 이다.

 

 

ㅁ 단축키 사용법: ?

ㅇ ? 을 입력하면 help 화면으로 이동되며, 단축키 사용법에 대해서 알 수 있다.

 

 

ㅁ 다른 리소스 확인 방법 ':'

 ㅇ 참고로 로컬에는 docker-desktop, AWS에는 k8s-peterica를 사용하고 있다. 

 ㅇ context 이동을 위해 ':' 입력하면 위 그림처럼 command 입력이 가능 하다.

 ㅇ conte까지만 입력하였는데 context 명령어 자동완성까지 지원되었다.

 

 

ㅁ Deploy 편집

 ㅇ d 단축키를 통해 yaml을 편집할 수 있다.

  ㅇ replicas를 3에서 4로 변경하였다.

 

 ㅇ pod가 4개로 변경이 되었다.

 

 

ㅁ deploy Replicas 편집 : S

 ㅇ 위에서는 yaml를 직접 편집하여 replicas를 변경하였다.

 ㅇ 해당 deploy를 선택한 후에 s 단축키를 누르면 Replicas를 간단하게 변경할 수 있다.

 

 

ㅁ Deploy restart

 ㅇ r 단축키를 사용하면 default/recover-deployment를 재기동 할 수 있다.

 

 

ㅁ Deploy yaml

 ㅇ y 단축키를 통해 yaml의 정보를 확인할 수 있다.

 ㅇ 여기서 c를 누르면 클립보드에 전체가 복사가 된다.

 

 

ㅁ Deploy 삭제

 ㅇ ctrl + d 단축키를 통해 해당 deploy를 삭제하였다.

 

 

ㅁ Pod shell

 ㅇ pod 목록에서 내부의 상황을 확인하기 위해 kubectl exec 명령어를 자주 사용하는데, 여기서는 s 단축키를 누르면 바로 shell로 접근할 수 있다.

 

 ㅇ exit를 입력하면 다시 k9s pod 창으로 복귀한다.

 

 

ㅁ Pod -o wide

 pod 정보에서 node 정보를 함께 보기 위해 pod -o wide 입력하였다. 운영상 pod의 밸런싱이 맞지 않을 때가 있는데, 그럴 경우 node ip를 확인하여 특정 node에 pod가 몰려 있는 경우 delete를 해 주어 밸런싱을 맞추는 작업을 하기도 한다. 이를 위해서는 pod의 정보에서 node정보가 함께 보여야 한다. 

  k9s에서는 특정 ip 정보를 입력하면 문자열이 포함된 pod정보만을 보여 주어 pod의 갯수 파악이 아주 쉬웠고, d 단축키를 통해 바로 삭제가 가능하였다.

 

 

ㅁ Key Bindings

Action Command Comment
단축키 사용법 ?  
Show all available resource alias  ctrl-a  
K9s 종료하기 :q, ctrl-c  
단수/복수 또는 단축 이름을 사용하여 Kubernetes 리소스 보기 :pod⏎ 단수, 복수, 짧은 이름 또는 별칭(즉, pod 또는 pod)을 허용한다.
특정 네임스페이스의 Kubernetes 리소스 보기 :pod ns-x⏎  
필터링된 포드 보기 :pod /fred⏎ View all pods filtered by fred
라벨이 지정된 포드 보기 :pod app=fred,env=dev⏎ View all pods with labels matching app=fred and env=dev
지정된 컨텍스트에서 포드 보기 :pod @ctx1⏎ View all pods in context ctx1. Switches out your current k9s context!
필터가 제공되면 리소스 보기를 필터링한다. /filter⏎ Regex2 지원. fred|blee to filter resources named fred or blee
역정규식 필터 /! filter⏎ Keep everything that doesn’t match.
라벨별로 리소스 보기 필터링 /-l label-selector⏎  
Fuzzy는 필터가 제공되는 리소스를 찾는다. /-f filter⏎  
보기/명령/필터 모드에서 벗어남 <esc>  
로그 설명, 보기, 편집, 보기 등을 위한 키 매핑… d,v, e, l,…  
다른 Kubernetes 컨텍스트를 보고 전환하려면(Pod 보기) :ctx⏎  
다른 Kubernetes 컨텍스트를 보고 직접 전환하려면(마지막으로 사용된 보기) :ctx context-name⏎  
다른 Kubernetes 네임스페이스를 보고 전환하려면 :ns⏎  
저장된 모든 리소스를 보려면 :screendump or sd⏎  
리소스를 삭제하려면(Tab 및 Enter를 눌러 확인) ctrl-d  
리소스를 종료하려면(확인 대화 상자 없음, kubectl delete –now와 동일) ctrl-k  
pulses 보기 실행 :pulses or pu⏎  
XRay 보기 실행 :xray RESOURCE [NAMESPACE]⏎ RESOURCE는 po, svc, dp, rs, sts, ds 중 하나일 수 있으며 NAMESPACE는 선택 사항이다.

 

ㅁ 함께 보면 좋은 사이트

 

K9s - Manage Your Kubernetes Clusters In Style

Who Let The Pods Out? K9s is a terminal based UI to interact with your Kubernetes clusters. The aim of this project is to make it easier to navigate, observe and manage your deployed applications in the wild. K9s continually watches Kubernetes for changes

k9scli.io

 ㅇ k9s 홈페이지

 

 ㅇ k9s 사용법 동영상

 

 

 

 

 

 

 

반응형
Comments