2022-10-04 @이영훈
kubectl을 여러 버전을 사용해야하는 경우가 생겼습니다. AWS EKS에서는 1.25.2 (22.10.04 기준 최신 버전)을 지원하지 않고 있습니다. 그래서 1.23.6 버전을 사용해야합니다. 그리고 lcoal 테스트용으로 minikube를 설치하면(brew install minikube) 1.25.2 버전이 자동으로 설치됩니다.
asdf로 여러 버전의 kubectl을 사용하였습니다. nvm, pyenv처럼 여러 버전을 설치해서 사용할 수 있게 해주는 CLI 툴입니다.
asdf를 이용하여 여러 버전의 kubectl 사용하기
asdf 설치하기
공식문서에 설치하는 방법이 자세하게 작성되어 있습니다
저는 zsh 환경에서 brew를 사용하여 설치하였습니다.
# Donwload asdf
brew install asdf
Bash
복사
# Install asdf
# 다음 명령어를 실행시킵니다. ~/.zshrc에 asdf.sh를 추가하는 명령어입니다
echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc
Bash
복사
asdf로 kubectl 설치하기
다음 명령어로 asdf kubectl plugin을 설치합니다
asdf plugin-add kubectl https://github.com/asdf-community/asdf-kubectl.git
Bash
복사
kubectl 1.25.2 (현재 최신버전)와 AWS EKS에서 지원하는 1.23.6 버전을 설치합니다
(필요에 따라서 설치하시면 됩니다)
# kubectl 1.25.2 버전을 설치합니다
asdf install kubectl 1.25.2
# kubectl 1.23.6 버전을 설치합니다
asdf install kubectl 1.23.6
Bash
복사
kubectl 버전 설정하기
그리고 1.23.6 버전을 global 기본값으로 설정합니다
필요에 따라서 현재 터미널의 세션에서만 버전을 변경하기 위해서 local을 사용해도 됩니다.
# global 버전 설정하기
asdf global kubectl 1.23.6
# local 버전 설정하기 (현재 터미널의 세션에서만)
asdf local kubectl 1.23.6
Bash
복사
버전이 변경되었는 지 다음 명령어로 확인합니다
kubectl version client -o=yaml
# response
clientVersion:
buildDate: "2022-04-14T08:49:13Z"
compiler: gc
gitCommit: ad3338546da947756e8a88aa6822e9c11e7eac22
gitTreeState: clean
gitVersion: v1.23.6 # ⭐️ 1.23.6 버전으로 설정되어있는 것을 확인할 수 있습니다
goVersion: go1.17.9
major: "1"
minor: "23"
platform: darwin/arm64
serverVersion:
buildDate: "2022-08-31T19:17:01Z"
compiler: gc
gitCommit: cd6399691d9b1fed9ec20c9c5e82f5993c3f42cb
gitTreeState: clean
gitVersion: v1.23.10-eks-15b7512
goVersion: go1.17.13
major: "1"
minor: 23+
platform: linux/amd64
Bash
복사