Kubernetes

asdf를 활용한 kubectl 버전 관리

SecuOf 2022. 6. 9. 16:02

asdf를 활용한 kubectl 버전 관리

kubectl은 Kubernetes 클러스터와 통신하기 위한 커맨드라인 툴입니다. 다양한 클러스터 환경을 운영할 때, 클러스터 버전에 맞는 kubectl을 사용하는 것이 중요합니다. 이때 여러 버전을 쉽게 관리할 수 있게 해주는 도구가 asdf입니다.


1. asdf란?

asdf는 여러 프로그래밍 언어 및 CLI 도구의 버전을 통합적으로 관리할 수 있는 버전 관리 툴입니다. Node.js, Python, Java는 물론 kubectl, terraform, helm 등의 도구도 지원합니다.


2. macOS에서 asdf 설치

Homebrew를 통해 간단히 설치할 수 있습니다.

brew install asdf

.zshrc 또는 .bashrc에 다음을 추가합니다:

. "$(brew --prefix asdf)/libexec/asdf.sh"

변경 사항 적용:

source ~/.zshrc  # 또는 source ~/.bashrc

3. kubectl 플러그인 추가 및 설치

# kubectl 플러그인 추가
asdf plugin add kubectl https://github.com/asdf-community/asdf-kubectl.git

# 설치 가능한 최신 버전 확인
asdf list-all kubectl

# 예: 최신 버전 설치
asdf install kubectl 1.30.1

# 전역 버전 설정
asdf global kubectl 1.30.1

# 현재 버전 확인
kubectl version --client

4. 자동 완성 설정 (Zsh 기준)

자동 완성을 위해 다음을 설정합니다:

# ~/.zshrc에 추가
plugins=(asdf)

# asdf 경로가 기본이 아닌 경우:
source $HOME/.asdf/asdf.sh
fpath=(${ASDF_DIR}/completions $fpath)
autoload -Uz compinit && compinit

설정 반영:

source ~/.zshrc

5. 설치 후 확인

kubectl version --client
asdf list kubectl

마무리

asdf를 이용하면 kubectl 뿐만 아니라 다양한 CLI 도구들을 한 곳에서 버전별로 관리할 수 있어 운영 효율이 높아집니다. 특히 클러스터마다 kubectl 버전이 다른 경우, 프로젝트별로 asdf local 설정을 통해 충돌 없이 환경을 구성할 수 있습니다.