- macOS (apple silicon) 에 kubectl 설치하기2023년 08월 24일
- 알쓸개잡
- 작성자
- 2023.08.24.:34
kubectl 은 kubernetes API 를 사용하여 kubernetes 클러스터의 control plane 과 통신을 지원하기 위한 CLI (명령줄도구) 입니다. kubernetes 를 사용하기 위해서는 kubectl 명령어 사용법을 익히는 것도 중요한 부분입니다. 이번 포스팅에서는 macOS 에 kubectl 을 설치하는 방법에 대해서 기술합니다.
참고로 포스팅을 작성하는 시점 kubernetes 최신 버전은 1.28.0 입니다.
kubectl 버전
kubectl 은 kubernetes API 를 통해서 상호 작용하기 때문에 kubernetes 의 버전과 연관이 있습니다. 기본적으로 kubernetes cluster 의 마이너 버전 차이가 1 이내에 kubectl 버전을 사용해야 합니다. 예를 들어 v1.28 을 사용하는 kubectl 은 v1.27, v1.28, v1.29 버전을 사용하는 kubernetes cluster 와 상호작용 할 수 있습니다.
kubectl binary 설치
kubectl 바이너리를 직접 다운로드 하여 설치하는 방법입니다.
kubectl 다운로드
$>curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"
$(curl -L -s https://dl.k8s.io/release/stable.txt) 부분은 현재 kubernetes 의 stable 버전 정보를 출력합니다.
설치하고자 하는 kubectl 버전이 있다면 설치하고자 하는 버전을 직접 명시합니다.
$>curl -LO "https://dl.k8s.io/release/v1.28.0/bin/darwin/arm64/kubectl"
kubectl 검증
kubectl.sha256 파일을 다운로드 받은 후 kubectl.sha256 파일 내에 있는 해시 정보와 다운로드 받은 kubectl 파일의 해시 정보를 비교하여 검증합니다.
$>curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl.sha256" 혹은 $>curl -LO "https://dl.k8s.io/release/<설치하고자 하는 kubectl 버전>/bin/darwin/arm64/kubectl.sha256" =================================================================================== 검증1 $>shasum -a 256 kubectl <sha256 hash> $>cat kubectl.sha256 <sha256 hash> 위 두개의 출력값이 맞는지 비교 검증2 $>echo "$(cat kubectl.sha256) kubectl" | shasum -a 256 --check kubectl: OK
$>shasum -a 256 kubectl 5d74042f5972b342a02636cf5969d4d73234f2d3afe84fe5ddaaa4baff79cdd8 kubectl $>cat kubectl.sha256 5d74042f5972b342a02636cf5969d4d73234f2d3afe84fe5ddaaa4baff79cdd8
kubectl 권한 변경 및 PATH 등록
$>chmod 755 ./kubectl $>sudo mv ./kubectl /usr/local/bin/kubectl $>kubectl version --client Client Version: v1.28.0 Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
다운로드 받은 kubectl 파일에 실행권한을 추가 후에 /usr/local/bin 으로 이동합니다. /usr/local/bin 은 환경변수 PATH에 등록된 경로입니다. /usr/local/bin 이 아닌 환경변수 PATH 에 등록된 다른 경로로 이동시켜도 되지만 보통은 /usr/local/bin 에 위치합니다.
kubectl brew 설치
$>brew search kubernetes-cli ==> Formulae kubernetes-cli ✔ kubernetes-cli@1.22 ==> Casks kubernetic
brew search 로 kubernetes-cli, kubernetes-cli@1.22 버전을 찾을 수 있습니다. 현 시점에 아래 링크의
https://github.com/Homebrew/homebrew-core/blob/master/Formula/k/kubernetes-cli.rb 파일을 보면 아래와 같이 기본 kubernetes-cli 는 v1.28.0 버전을 설치함을 알 수 있습니다.
아래 명령으로 kubectl 을 설치합니다.
$>brew install kubernetes-cli $>where kubectl /opt/homebrew/bin/kubectl /usr/local/bin/kubectl $>kubectl version --client Client Version: v1.28.0 Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
docker desktop 이 설치된 상태라면 [which kubectl] 명령으로 kubectl 파일 경로 확인시
lrwxr-xr-x 1 root wheel 55 3 31 11:48 /usr/local/bin/kubectl -> /Applications/Docker.app/Contents/Resources/bin/kubectl
위와 같이 docker desktop 에 내장된 kubectl 을 참조하고 있을 수 있습니다. 이 경우에는 PATH 환경 변수에서 /usr/local/bin 경로 보다 /opt/homebrew/bin 경로를 앞으로 배치 하거나 /usr/local/bin/kubectl 의 심볼릭링크를 제거하는 것도 방법일 수 있을 것 같습니다.
kubectl auto completion (zsh)
zsh 환경에서 kubectl completion zsh 명령으로 kubectl 자동 완성 스크립트를 사용할 수 있습니다.
$>echo "source <(kubectl completion zsh)" >> ~/.zshrc $>source ~/.zshrc
자동 완성 스크립트 이후 kubectl 옵션 <tab키> 입력시 사용가능한 옵션들이 자동으로 출력되어 선택할 수 있습니다.
bash 쉘에서 kubectl 자동완성 스크립트 사용하는 방법은 아래 링크를 참고하시기 바랍니다.
https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/#enable-shell-autocompletion
이 글을 읽으신 분께 도움이 되었기를 바랍니다.
반응형'쿠버네티스' 카테고리의 다른 글
multipass를 이용하여 로컬 환경에 쿠버네티스 클러스터 구축하기 (0) 2024.07.04 macOS (silicon) minikube 설치하기 (0) 2023.08.24 쿠버네티스 pod graceful shutdown (0) 2023.08.06 port forward 명령으로 로컬에서 pod 접속하기 (0) 2023.08.04 Release 상태의 PV 를 Available 상태로 변경하기 (0) 2023.07.30 다음글이전글이전 글이 없습니다.댓글