본문 바로가기
클라우드/Kubernetes

k9s 설치와 사용방법 (쿠버네티스 UI 관리 도구)

by 정권이 내 2023. 12. 8.

쿠버네티스 관리를 위한 k9s 설치와 사용방법

 

 

k9s 란?

쿠버네티스 클러스터를 관리하는 방법으로는 kubectl, Rancher, GKE, AKS, Open Lens 등 여러가지 도구가 있는데 이번 글에서는 터미널 기반 관리도구인 k9s에 대해 설명 드리겠습니다.

쿠버네티스를 k8s이라는 문자로 표현하기도 하는데 Kubernetes에서 첫글자 K와 마지막 s 사이의 문자가 8개라 그렇게 표현한다고 합니다.

k9s는 약간 다른 방식으로 이름이 만들어졌는데 미국에서 개과 동물을 뜻하는 단어인 Canine은 발음이 비슷한 K9(K-nine) 이라는 은어로도 사용되었는데 주로 군경조직에서 사용되었기 때문에 K9은 경찰견 혹은 군견이라는 의미를 가지고 있습니다. 그때문인지 k9s는 쿠버네티스 클러스터를 마치 탐지견처럼 탐색한다는 의미로 만들어졌다는 이야기가 있는데 k9s 공식 사이트나 Github 메인 이미지에 개 이미가 있는걸 봐선 의미가 맞는듯 합니다.

 

기본 개념

k9s는 리눅스 터미널 기반에서 동작하는 UI 기반의 쿠버네티스 클러스터 관리 도구입니다. 리눅스 터미널 기반에서 kubectl 명령어로 관리하는것보다 더 직관적이고 편리하게 관리할수 있습니다.

img

파드 목록을 보는 예시

 

특징

  • 클러스터, 파드, 네트워크 등 리소스 상태을 실시간으로 모니터링 할수 있습니다.
  • 로그 확인, 포트포워딩, 재시작 등 클러스터 관리 명령을 kubectl 보다 쉽게 사용할수 있습니다.
  • UI 스킨을 커스터마이징 할수 있습니다.

 

k9s 설치방법

k9s를 원활하게 사용하기 위해서는 우선 kubectl이 먼저 설치되야 합니다. kubectl 없이도 사용 가능하지만 kubectl를 통해서 사용하는 명령의 경우 제한이 있으므로 설치하는것이 좋습니다.

kubectl에 대한 개념설명과 설치방법은 쿠버네티스 클러스터 kubectl 설치와 사용방법 링크 에서 확인할수 있습니다.

 

설치 환경

k9s는 Windows, Linux, Mac OS 모든 환경에서 설치 가능합니다.

  • Linux
# Via LinuxBrew
brew install derailed/k9s/k9s

# Via PacMan
pacman -S k9s

 

  • Windows
# Via scoop
scoop install k9s

# Via chocolatey
choco install k9s

 

  • Mac OS
# Via Homebrew
brew install derailed/k9s/k9s

# Via MacPort
sudo port install k9s

 

k9s 시작하기

k9s가 정상적으로 설치되었다면 터미널에서 k9s입력시 UI가 실행됩니다. 아래 모습이 기본적인 k9s의 상태이고 여러가지 단축키를 통해 클러스터를 관리할수 있습니다.

img

 

단축키와 기능 확인 ?

물음표 단축키는 help와 같은 역할을 하며 현재 선택된 리소스에 따라 사용가능한 단축키를 다르게 보여줍니다.

제 경험상 주로 썻던 단축키들은 파드 리소스의 경우 e단축키가 kubectl의 edit역할을 하여 cpu/mem 자원값을 변경할때 주로 썻고 서비스의 리소스의 경우 shift + f단축키로 포트포워딩 설정을 주로 썻습니다.

img

 

리소스 선택 :<resource>

kubectl을 사용할때 중요한것은 파드, 서비스, 네임스페이스, PVC... 등등 관리할 리소스를 선택하는것입니다. k9s 역시 어떤 리소스를 조회하고 관리할지 먼저 선택해야 합니다. k9s UI에서 세미콜론 :키를 입력하면 개 모양의 아이콘과 함께 리소스를 입력할수 있는 상태가 되는데 kubectl과 동일하게 pod, svc, namespace등을 입력하여 원하는 리소스를 확인할수 있습니다.

 

예시로 네임스페이스 조회를 하기위해 :입력후 namespace를 실행했습니다.

img

img

kubectl과 마찬가지로 클러스터 단위의 리소스인 node, namespace 등을 제외하고는 네임스페이스 단위로 구분되므로 먼저 네임스페이스를 선택합니다. all+를 선택하면 모든 네임스페이스에 대한 리소스를 확인할수 있습니다.

 

k9s 활용하기

kubectl 명령어로 할수있는 작업들은 k9s 툴에서도 대부분 가능하며 kubectl의 명령어와 옵션들을 외우지 않아도 되는 편리함이 있습니다.

 

이미지 태그 변경

파드의 이미지 태그를 변경하는 작업입니다. 파드를 선택후 e 키를 눌러 edit 모드로 들어갑니다.

img

 

edit 모드에서 spec.containers.image 값을 busybox에서 busybox:1.35.0 으로 태그를 입력후 저장하고 빠져나옵니다.

img

 

edit 모드에서 나오고 파드의 컨테이너를 확인해보면 이미지 태그가 변경된것을 확인할수 있습니다.

img

 

포트포워딩

파드에 포트포워딩을 설정하여 클러스터에 존재하는 파드를 로컬에서 접근할수 있습니다.

파드를 선택하고 shitf+f를 누르면 포트포워딩 설정이 뜨는데 Container Port, Local Port를 설정후 OK를 누르면 설정이 완료됩니다.

img

 

포트포워딩이 설정된 파드에는 PF 탭에 f 기호가 표시되어 포트포워딩이 설정되었음을 알수 있습니다.

img

 

포트포워딩이 설정된 파드에서 f키를 누르면 현재 포트포워딩 상태를 확인할수 있습니다. http://localhost:8090 으로 접속하면 해당 파드의 9090 포트로 접속할수 있습니다.

img

반응형

댓글