Search
🖇️

MacOS에서 Kubectl 커맨드 자동 완성 

생성일
2023/10/05 14:14
태그
k8s

자동 완성이 필요한 이유

운영환경에서 K8s를 사용한 지는 오래되었지만 주로 Devops의 도움을 받아 운영하고 있었고 Rancher 같은 K8s 매니지먼트 툴을 사용해서 작업하다 보니 Kubectl 명령어가 익숙하지 않아도 그런대로 잘 쓰고 있었다.
그러던 중 K8s를 파보기로 마음먹고 본격적으로 학습하고 있는데 Kubectl의 다양한 커맨드를 외우거나 직접 타이핑하면 당연히 오타가 많이 발생하여 방법을 찾던 도중 K8s 공식 문서에서 Bash, Zsh 에 대한 자동완성을 제공하는 것을 확인하게됐다.
자동완성이 제공되면 kubectl [command] [TYPE] [NAME] [flags] 와 같이 kubectl 이후 커맨드를 tab 키를 사용해 자동 완성할 수 있게된다.
자동 완성이 설치되지 않은 상태라면 커맨드를 직접 타이핑 해야한다.
영상을 보면 tab키를 눌렀을때 kubectl 명령어가 아닌 디렉토리 구조가 자동 완성되는 것을 볼수있다.

Kubectl 커맨드 자동 완성 설치 방법

현재 학습하는 환경은 MacOS이고 Zsh을 기본으로 사용하고 있다.
1.
먼저 k8s 공식 문서 사이트에 접속한다. 링크
2.
그 다음 zsh completion 으로 검색한다. (bash인 경우 bash completion 으로 검색하면 된다.)
3.
검색 결과에서 zsh 자동 완성 링크를 확인할 수 있다.
4.
문서에서 설명하는대로 ~/.zshrc 파일에 source <(kubectl completion zsh) 코드를 추가한다.
~/.zshrc 파일에 들어가지 않고 아래와 같이 추가하는 방법도 있다.
echo "source <(kubectl completion zsh)" >> ~/.zshrc
Shell
복사
5.
~/.zshrc 파일을 열어보면 아래와 같이 추가된것을 확인할 수 있다
6.
tab키를 사용해서 자동 완성이 잘 되는 것을 확인할 수 있다.