본문 바로가기
Kubernetes

asdf를 활용한 kubectl 버전 관리

by SecuOf 2022. 6. 9.

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 설정을 통해 충돌 없이 환경을 구성할 수 있습니다.