본문 바로가기

kubectx, kubens

What is kubectx?

기존에 사용하는 cluster가 1개 이상이 될일이 없어서 크게 context 전환에 대해서 관리할 필요 성이 없었지만, 환경이 추가 되면서 context 전환의 필요성이 생겨 찾아 보던중 손쉽게 context를 전환 할수 있는 tool이 있어 소개 하고자 합니다.

kubect tool이며, 이 명령어를 확인 하면 좀더 직관적이고 손쉽게 Kubernetes Cluster의 context를 손쉽게 변경이 가능합니다.

만약 내가 기존의 cluster를 변경하고자 한다면, kubectl 명령어를 통해서 좀더 길게 명령어를 써야 했지만, kubectx 를 사용하게 되면 명령어만 입력하면 리스트를 조회 하고 alias를 변경하고 이전에 사용한 context로 바로 변경이 가능합니다.

기존 kubectl 명령어를 이용한 context 변경

kubectl config view
kubectl config get-contexts
kubectl config use-context minikube

kubectx를 사용한 context 변경

# context list 조회 (dev, staging cluster 존재시)
$ kubectx
  dev
  staging

# current context alias 변경 (current context를 staging으로 변경)
$ kubectx staging=.

# 이전 context로 바로 전환
$ kubectx -

아래는 kubectx의 help 명령어를 통해서 사용 방법을 확인 할수 있다.

kubectx -h
USAGE:
  kubectx                       : list the contexts
  kubectx <NAME>                : switch to context <NAME>
  kubectx -                     : switch to the previous context
  kubectx -c, --current         : show the current context name
  kubectx <NEW_NAME>=<NAME>     : rename context <NAME> to <NEW_NAME>
  kubectx <NEW_NAME>=.          : rename current-context to <NEW_NAME>
  kubectx -d <NAME> [<NAME...>] : delete context <NAME> ('.' for current-context)
                                  (this command won't delete the user/cluster entry
                                  that is used by the context)
  kubectx -u, --unset           : unset the current context

  kubectx -h,--help             : show this message

What is kubeens?

kubens 는 kubectx를 설치 하게 되면 같이 설치되는 툴이며, kubectl 명령어를 통해서 네임스페이스를 일일이 입력 해야 하는 번거러움을 덜어 줄수 있습니다.

예를 들어 kubectl 명령어를 통해서 namespace의 pod를 조회 하기 위해서는 아래와 같이 입력해야 하는데

kubectl get pods -n amazon-cloudwatch 

kubens를 사용하게 되면 namespace에 바로 진입해서 해당 pods를 조회 할수 있습니다. namespace가 많고 헷갈릴 경우 단일 공간을 아에 namespace로 전환한 효과를 볼수 있기 때문에 특정 namespace에서 작업이 많이 이뤄질 경우 효과적일것으로 보입니다. 또한 특정 namespace를 반복적인 조회를 할 경우에도 도움이 될수 있습니다.

kubens amazon-cloudwatch
kubectl get pods

설치 방법

여기서는 Mac 버전의 homebrew 버전의 zsh에 대해서만 언급함. 기타 OS나 shell의 경우 개발자의 github을 참조.

https://github.com/ahmetb/kubectx

Homebrew

brew install kubectx

zsh 자동 완성 설정

mkdir -p ~/.oh-my-zsh/completions
chmod -R 755 ~/.oh-my-zsh/completions
ln -s /opt/kubectx/completion/_kubectx.zsh ~/.oh-my-zsh/completions/_kubectx.zsh
ln -s /opt/kubectx/completion/_kubens.zsh ~/.oh-my-zsh/completions/_kubens.zsh

'Kubernetes' 카테고리의 다른 글

asdf (switch kubectl version)  (0) 2022.06.09
Kubernetes Basic (MSA에서 Kubernetes)  (0) 2020.08.06
쿠버네티스 기본 용어(Terms)  (0) 2020.06.25

Secuof Blog