kubectl Command를 사용하는 경우 k8s의 버전에 따라서 kubectl version 도 변경해 줘야 하는 경우가 발생한다. 이때 유용하게 사용할수 있는 tool를 소개 하고자 한다.
asdf command 이며, 이 command는 kubectl 뿐만 아니라 node, java, python 등의 다른 command 또는 language 버전 변경이 가능한다. 여기서는 kubectl 버전 변경 및 간단한 설치 방식에 대해서만 기술 한다.
공식 홈페이지
Github Repository
MacOS에서 asdf 설치
# Brew를 이용한 asdf 설치
brew install asdf
# asdf를 사용한 kubectl Command 설치
asdf install kubectl <version>
asdf 자동 완성
brew를 이용해서 asdf를 설치 하게 되면 auto completions가 정상적으로 동작 하지 않는다. 공식 문서에서 아래와 같은 구문을 ~/.zshrc 에 입력 하라고 나온다.
echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc
위의 구문을 shell에서 실행하여 ~/.zshrc 파일에 입력 하여도 asdf 명령어는 자동완성 기능이 동작 하지 않는다. 그래서 좀더 확인해 보니 아래와 같은 구문이 적혀 있다.
OR use a ZSH Framework plugin like asdf for oh-my-zsh which will source this script and setup completions.
Completions are configured by either a ZSH Framework asdf or will need to be configured as per Homebrew's instructions. If you are using a ZSH Framework the associated plugin for asdf may need to be updated to use the new ZSH completions properly via fpath. The Oh-My-ZSH asdf plugin is yet to be updated, see ohmyzsh/ohmyzsh#8837.
간단히 이야기 하면, 위의 구문을 실행 하거나 zsh framework pulugin을 사용해서 zsh shell에 source script를 설정 하라는 이야기 이다. 그래서 관련한 plugin git에 가서 확인해 보니 source를 추가로 받은 후 ~/.zshrc에 추가로 설정해 줘야 하는 내용이 포함 되어 있다. (이럴거면 소스를 다운로드 받아서 하는게 좋을지도…. 왜 brew install 시 auto completions를 포함 안해놨는지 모르겠다…)
자세한 내용은 oh-my-zsh의 asdf plugin 페이지에서 확인 할수 있다.
간단히 기술하면, ~/.zshrc에 아래의 내용을 추가 한 다음, asdf-vm source를 clone 한후 shell을 다시 실행 하면 된다.
plugins=(asdf)
git clone https://github.com/asdf-vm/asdf.git ~/.asdf
위와 같이 하면 될줄 알았다…. 하지만… 여전히 auto completions가 동작하지 않았다. 그래서 직접 아래와 같이 source 명령어를 통해서 직접 추가 해주니 동작 하였다.
# in ~/.zshrc
source $HOME/.asdf/asdf.sh
source $HOME/.asdf/completions/asdf.bash
간단한 사용 방법
우리는 kubectl을 사용할거기 때문에 asdf 에 plugin을 추가 해준 후 kubectl 명령어를 asdf 명령어 통해서 설치해 주면 된다.
# asdf 명령어에 kubectl plugin 추가
asdf plugin-add kubectl
# asdf 명령어에 kubectl version 추가
asdf plugin-add kubectl <version>
# asdf를 통해 kubectl command 실행
asdf local kubectl get pods
# asdf를 통해 kubectl 명령어 global 설정 적용
asdf global kubectl <version>
정리
brew & zsh사용자의 경우 아래와 같이 설치 및 auto completions를 적용 하면 된다.
brew install asdf
git clone https://github.com/asdf-vm/asdf.git ~/.asdf
echo "source $HOME/.asdf/asdf.sh" >> ~/.zshrc
echo "source $HOME/.asdf/completions/asdf.bash" >> ~/.zshrc
'Kubernetes' 카테고리의 다른 글
kubectx, kubens (k8s 유용한 툴) (0) | 2022.06.02 |
---|---|
Kubernetes Basic (MSA에서 Kubernetes) (0) | 2020.08.06 |
쿠버네티스 기본 용어(Terms) (0) | 2020.06.25 |