개요

쿠버네티스에게 명령어를 전달하기 위해 사용하는 툴인 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 nsk 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 를 수정해서 손쉽게 설치할 수 있다.

  1. vim으로 zshrc 파일 열기
    1
    
     vim ~/.zshrc
    
  2. :/plugins입력후 다음과 같은 plugins에 kubectl 추가시켜주기
    1
    2
    3
    4
    
     ...
     #아래 플러그인에 kubectl추가한 형태 나머지는 다른이유로 설치
     plugins=(git fzf kubectl zsh-syntax-highlighting)
     ...
    
  3. . ~/.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