개요
쿠버네티스에게 명령어를 전달하기 위해 사용하는 툴인 kubectl을 더 간편하게 잘 활용할 수 있게 설정해보자
기본적으로 kubectl은 깔려있다고 가정한다.
설정
아래의 나온 설정들은 모두 혼합해서 사용이 가능하다.
명령어 k는 아래 alias 설정을 통해 kubectl과 같다.
alias
kubectl 은 너무길다 linux의 alias 명령어를 사용해 쉘에게 k는 kubectl이다
라고 알려줄 수 있다.
아래의 명령어 실행시 kubectl을 k로 별칭을 지어 kubectl 대신 k만으로 명령이 가능하다 kubectl get po과 k get po는 같은 결과가 된다.
bash
1
2
3
echo "alias k=kubectl" >> ~/.bashrc
echo "complete -F __start_kubectl k" >> ~/.bashrc
. ~/.bashrc
zsh
1
2
3
echo "alias k=kubectl" >> ~/.zshrc
echo "complete -F __start_kubectl k" >> ~/.zshrc
. ~/.zshrc
자동완성
쿠버네티스 문서 kubectl Cheat Sheet에 유용한 명령어와 기본적인 명령어들 내용이 있다.
bash
1
2
3
source <(kubectl completion bash) # setup autocomplete in bash into the current shell, bash-completion package should be installed first.
echo "source <(kubectl completion bash)" >> ~/.bashrc # add autocomplete permanently to your bash shell.
. ~/.bashrc
zsh
1
2
3
source <(kubectl completion zsh) # setup autocomplete in zsh into the current shell
echo "[[ $commands[kubectl] ]] && source <(kubectl completion zsh)" >> ~/.zshrc # add autocomplete permanently to your zsh shell
. ~/.zshrc
kubectl ns, kubectl ctx
krew 설치
krew는 kubectl plugin 설치를 도와주는 툴이다.
1
2
3
4
5
6
7
8
9
(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/krew.tar.gz" &&
tar zxvf krew.tar.gz &&
KREW=./krew-"${OS}_${ARCH}" &&
"$KREW" install krew
)
설치 후 쉘에맞게 아래 명령어를 실행하거나 쉘을 재시작하면 적용된다
1
2
3
4
#bash
. ~/.bashrc
#zsh
. ~/.zshrc
krew를 통해 namespace 선택을 쉽게해주는 k ns와 여러개의 쿠버네티스를 사용할 경우 context 변경이 필요한데 k ctx를 통해 쉽게 선택 할 수 있다.
1
2
3
# ctx 설치
k krew install ctx
k krew install ns
이제부터 k ns
와 k ctx
가 사용가능하다.
1
2
3
4
5
# 네임스페이스 선택기에서 선택가능
k ns
# 기존에 변경할시 아래 명렁에서 매우 축약
# k config set-context --current --namespace default
k ns default
k ns를 치면 current context를 변경하기 위한 네임스페이스 선택기창이 뜨며 검색도 가능하다.
또한 k ns default 등 바로 네임스페이스 변경이 가능하다.
1
2
k ctx
k ctx docker-desktop
k ctx는 k ns와 유사하게 kubectl의 context 변경이 가능하다.
즉 여러 쿠버네티스의 컨택스트를 빠르게 사용할 수 있다.
zsh kubectl plugin(zsh만 사용가능)
zsh를 사용중이고 ohmyzsh를 사용중이라면 kubectl 플러그인을 통해 간편하게 사용할 수 있다. ~/.zshrc 를 수정해서 손쉽게 설치할 수 있다.
- vim으로 zshrc 파일 열기
1
vim ~/.zshrc
:/plugins
입력후 다음과 같은 plugins에 kubectl 추가시켜주기1 2 3 4
... #아래 플러그인에 kubectl추가한 형태 나머지는 다른이유로 설치 plugins=(git fzf kubectl zsh-syntax-highlighting) ...
- . ~/.zshrc 로 설치 적용
kubectl-zsh-plugin해당 페이지에서 아래와같이 간략하게 사용할 수 있는 축약어들이 있다.
필자가 자주사용하는 명령어만 기술해봤다.
- kg{약어} : kubectl get 약어
- kd{약어} : kubectl describe 약어
- ke{약어} : kubectl edit 약어
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#kubectl get pod kgp #kubectl get service kgs #kubectl get configmap kgcm #kubectl describe pod kdp #kubectl describe service kds #kubectl edit deployment ked #kubectl apply -f kaf