[Kubernetes] kubectx, kubens 설치 및 powerlevel10 커스터마이징
kubectx란?
다중 클러스터 사용 시 클러스터 context 전환을 쉽게 해 주는 툴이다.
kubens란?
쿠버네티스 클러스터 내에서 네임스페이스 변환을 쉽게 해 주는 툴이다.
kubectx / kubens 설치하기
Github URL 👉 https://github.com/ahmetb/kubectx
kubectx
$ wget https://github.com/ahmetb/kubectx/releases/download/v0.9.4/kubectx
$ sudo install kubectx /usr/local/bin
설치 확인
$ which kubectx
/usr/local/bin/kubectx
kubens
$ wget https://github.com/ahmetb/kubectx/releases/download/v0.9.4/kubens
$ sudo install kubens /usr/local/bin
설치 확인
$ which kubens
/usr/local/bin/kubens
Kubectx 사용법
context 목록 확인하기
$ kubectx
context 전환하기
$ kubectx <CONTEXT>
Kubens 사용법
namespace 목록 확인하기
$ kubens
namespace 전환하기
$ kubens <NAMESPACE>
Powerlevel10k란?
쿠버네티스에서 클러스터가 여러 개이고, 사용자마다 권한도 다 다르고 그러다 보니
실제로 어디서 어떤 작업을 하고 있는지 헷갈리는 경우가 많다.
이런 경우 유용하게 사용할 수 있는 것이 바로 Powerlevel10k이다.
Powerlevel10k를 사용하면, kubectl
명령어를 사용할 때
어떤 context에서 작업 중인지 바로 확인할 수 있다.
이외에도 리턴코드, 로딩 시간 확인 등등 여러 기능을 갖추고 있어
실제로 개발자들 사이에서 정말 많이 사용되는 오픈소스이다
Github URL 👉 https://github.com/romkatv/powerlevel10k
zsh 및 oh-my-zsh이 설치되어있어야 하는데, 설치 방법은 여기에서 확인할 수 있다.
그렇다면, zsh 및 oh-my-zsh 설치가 완료되었다는 전제 하에, Powerlevel10k를 설정해보자
먼저 git clone을 통해 저장소를 동기화한다.
$ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
다음으로 zsh 설정파일인 ~/.zshrc
에서 테마를 powerlevel10k로 변경한다.
$ vi ~/.zshrc
...
ZSH_THEME="powerlevel10k/powerlevel10k"
zsh을 재시작하기 위해 다음 명령어를 입력한다.
$ exec zsh
그러면 다음과 같이 powerlevel10k 설정 화면이 나오고, 본인의 기호에 맞게 항목들을 선택하면 된다.
This is Powerlevel10k configuration wizard. You are seeing it because you haven't
defined any Powerlevel10k configuration options. It will ask you a few questions and
configure your prompt.
Does this look like a diamond (rotated square)?
reference: https://graphemica.com/%E2%97%86
---> <---
(y) Yes.
(n) No.
(q) Quit and do nothing.
Choice [ynq]:
설정을 다시 하고 싶다면 다음 명령을 치고 다시 진행하면 된다.
$ p10k configure
설정을 완료하면, 다음과 같은 화면을 확인할 수 있다.
아이콘을 적용하고 싶다면 공식 폰트를 다운로드해야 한다.
다음 4개의 폰트를 다운 및 설치하고,
윈도우 터미널을 사용한다면 윈도우 터미널에서 폰트 변경을,
vscode에서 진행한다면 vscode에서 폰트를 'MesloLGS NF'으로 변경하면 된다.
github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf
github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf
github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf
github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf
그리고 pk10 configure
명령을 통해 다시 설정하면 다음과 같은 화면을 확인할 수 있다
여기서부터 제대로 된 커스터마이징 시작!
여기서 만약 색상 및 리턴 코드에 따른 아이콘을 변경하고 싶다면 ~/.p10k.zsh
파일을 수정하면 된다.
색상은 다음 명령을 통해 가능한 255가지 색상 목록을 확인할 수 있다.
$ for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done
리턴 코드가 0으로 종료(정상종료)되었을 때는 파란 하트 💙가 표시되도록 하였고,
505 typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='💙'
513 typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='💙'
리턴 코드가 0이 아닐 때는 놀라는 원숭이 아이콘 🙊이 표시되도록 커스터마이징하였다
519 typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='🙊'
528 typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='🙊'
그리고 파란색을 좋아해서 전체적으로 파랗게 설정하였다.
사용자 계정 부분
910 typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=75
911 typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_BACKGROUND=0
현재 시간 부분
# Current time color.
1657 typeset -g POWERLEVEL9K_TIME_FOREGROUND=7
1658 typeset -g POWERLEVEL9K_TIME_BACKGROUND=4
또한 kubectl 명령을 사용할 때 보이는 context의 색상도 변경하였다.
완성된 결과는 다음과 같다