Post

k8s plugin으로 생산성 올리기 - krew

krew는 kubectl에서 사용할 수 있는 유요한 plugin을 설치할 수 있게 도와준다.

kubectrl krew install $pugin_name과 같은 방법으로 plugin을 설치할 수 있다. package manager와 유사하게 다음과 같은 명령어들이 지원된다.

  • kubectl krew list
  • kubectl krew search

설치

Terminal 창에 다음 명령을 실행하면 손쉽게 krew가 설치되며, 이후 kubectl krew명령이 실행 가능해 진다.

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/')" &&
  KREW="krew-${OS}_${ARCH}" &&
  curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
  tar zxvf "${KREW}.tar.gz" &&
  ./"${KREW}" install krew
)

zshrc나 bash에 다음 내용을 추가하자

1
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

공식 링크

https://krew.sigs.k8s.io/docs/user-guide/quickstart/

https://krew.sigs.k8s.io/docs/user-guide/setup/install/

추천 플러그인

ctx

.kube/config에 kubectl이 사용하는 context들이 저장된다. 여러 k8s cluster를 관리하게 되면 이 config파일을 대체하거나 혹은 config에 context를 추가하는 방식으로 관리한다. 이 경우 context르 전환하는 것이 불편한데, ctx plugin은 이를 해결해준다.

1
2
kubectl krew install ctx
kubectl ctx

zsh plugin에서 제공되는 fzf를 함께 사용하면 k ctx 명령에 결과를 다음과 같이 방향키를 통해 선택할 수 있게 된다.

0

ns

k8s context와 마찬가지로 namespace를 손쉽게 전환하게 도와주는 plugin

1
2
kubectl krew install ns
kubectl ns

konfig

~/.kube/config 에 여러 plugin이 존재할 때 이를 병합을 도와주는 plugin이다.

1
2
kubectl krew install konfig
kubectl konfig import ${file} # 이후 confg를 붙여넣기

cluster의 이름 기반으로 병합이 이뤄지기 때문에 cluster의 이름이 동일할 경우 병합 결과가 잘못될 수 있다. kconfig를 사용전 ~/.kube/config 파일 내용을 수정 후 실행하는 것이 좋다.

kubetail

kubectl get logs명령은 단일 pod의 container 1개에 대한 log만을 출력하지만 kubetail을 이용하면 ns, pod내 여러 container의 log를 동시에 출력하게 할 수 있다.

1
2
sudo apt-get install kubetail
kubetail -n kube-system calico

Link

https://gurumee92.tistory.com/302

This post is licensed under CC BY 4.0 by the author.