리눅스에서 보통 글자를 입력하고 TAB 을 치게 되면 자동으로 입력할 수 있는 문자가 완성된다.
쿠버네티스 명령어인 kubectl 을 사용하면 TAB 을 통해 자동완성이 되지 않는다.
예를 들어, ku 하고 TAB 하면 되지 않는다.
그래서 자동 완성 기능을 설정해보려고 한다.
쿠버네티스 자동 완성 기능과 관련된 글들은 정말 많기 때문에 여러 블로그를 참고하면 된다.
그리고 쿠버네티스에서도 자동완성과 관련된 문서를 제공해주고 있다.
https://kubernetes.io/ko/docs/tasks/tools/included/optional-kubectl-configs-bash-linux/
쿠버네티스 자동 완성 기능 설정 요약 정리
1. bash-completion 패키지 설치
yum install bash-completion -y
2. 자동 완성 스크립트 결과 저장
echo 'source <(kubectl completion bash)' >>~/.bashrc
또는
kubectl completion bash >/etc/bash_completion.d/kubectl
3. kubectl 앨리어스 설정 (선택 사항)
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc
4. 재접속
가장 먼저 bash-completion 패키지를 설치한다.
[root@k8s-master ~]# yum install bash-completion -y
bash-completion 패키지는 bash의 내장 명령 중 하나인 complete 를 이용해서
특정 명령에 대해 자동 완성 목록을 표시해준다.
따라서, kubectl 은 kubectl completion bash 명령어를 제공해주는데 실행하게 되면
complete 에 맞게 자동 완성에 필요한 목록들을 생성해준다.
[root@k8s-master ~]# kubectl completion bash
결과를 확인해보면 엄청나게 긴 스크립트를 확인할 수 있다.
그래서 자동 완성 기능을 사용하려면 위에서 나온 결과를 저장하고 가지고 있어야 한다.
그리고 접속할 때 배쉬 쉘 설정에서 불러오게 하면 된다.
kubectl completion bash 자동 완성 스크립트의 결과를 저장하는 방법은 2가지가 있다.
~/.bashrc 파일에 추가하거나
echo 'source <(kubectl completion bash)' >>~/.bashrc
또는 /etc/bash_completion.d 디렉터리에 추가한다.
kubectl completion bash >/etc/bash_completion.d/kubectl
나는 ~/.bashrc 파일에 추가해주었다.
그리고 kubectl 을 alias 에 등록해 'k' 한글자로 사용할 수 있다.
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc
이렇게 추가된 ~/.bashrc 파일이다.
[root@k8s-master ~]# cat ~/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
source <(kubectl completion bash)
alias k=kubectl
complete -F __start_kubectl k
이제 재접속하면 적용이 되는데 껐다 켜도 되지만 잠깐 확인해보려면 su - 명령어를 통해 접속해보자.
[root@k8s-master ~]# k
annotate autoscale cp drain help plugin scale wait
api-resources certificate create edit kustomize port-forward set
api-versions cluster-info debug exec label proxy taint
apply completion delete explain logs replace top
attach config describe expose options rollout uncordon
auth cordon diff get patch run version
이렇게 k 만 쳐도 kubectl 명령이 실행되고 TAB을 치면 목록들이 쭉 나오게 된다.
자동완성 기능 설정 끝 !
'DevOps > kubernetes' 카테고리의 다른 글
10. Vagrant 가상 머신을 통해 쿠버네티스 클러스터 생성해보기 (시작하기 전 잡담) (0) | 2021.10.15 |
---|---|
9. 쿠버네티스 대시보드 설치 및 설정하기 (0) | 2021.09.15 |
7. 쿠버네티스 클러스터 네트워크 플러그인 cailco 설치 및 적용하기 (0) | 2021.08.29 |
6. 쿠버네티스 클러스터 워커 노드 설정하기 (0) | 2021.08.29 |
5. 쿠버네티스 클러스터 마스터 노드 설정하기 (0) | 2021.08.29 |