source <(kubectl completion bash) # bash-completion 패키지를 먼저 설치한 후, bash의 자동 완성을 현재 셸에 설정한다
echo "source <(kubectl completion bash)" >> ~/.bashrc # 자동 완성을 bash 셸에 영구적으로 추가한다
- 팁2: Linux에서 alias를 사용하여 "k"만을 입력하는 사람이 많다!
cat <<EOF >> ~/.bashrc
alias k=kubectl
complete -F __start_kubectl k
EOF
- kubectx / kubens: 클러스터와 네임스페이스 변경을 돕는다 링크
# Git이 없을 경우에는 설치
# Ubuntu: "apt install git"
# CentOS: "yum install git"
# 설치 (root 권한)
git clone https://github.com/ahmetb/kubectx /opt/kubectx
ln -s /opt/kubectx/kubens /usr/local/bin/kubens
ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx
# 네임스페이스 확인
kubens
root@k8s-m:~# kubens
default
kube-node-lease
kube-public
kube-system
# 네임스페이스 변경
kubens kube-system
root@k8s-m:~# kubens kube-system
Context "kubernetes-admin@kubernetes" modified.
Active namespace is "kube-system".
kubectl get pod
root@k8s-m:~# kubectl get pod
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-78d6f96c7b-vt2bm 1/1 Running 0 12m
calico-node-497bj 1/1 Running 0 8m52s
...
# 디폴트 네임스페이스로 변경
kubens -
root@k8s-m:~# kubens -
Context "kubernetes-admin@kubernetes" modified.
Active namespace is "default".
# 컨텍스트 확인
kubectx
# 컨텍스트 변경
kubectx <변경할 컨텍스트 명>
# kube-ps1
git clone https://github.com/jonmosco/kube-ps1.git
# .bashrc 편집 - bash prompt 설정
vim .bashrc
# 다음 2줄을 하단에 추가
source ~/kube-ps1/kube-ps1.sh
PS1='[\u@\h:\w $(kube_ps1)]\$ '
# K3s는 .kube/config 파일 위치가 다른 부분을 kube-ps1에 인식시켜주어야 한다 - 아래 명령어 실행
sed -i 's/\${HOME}\/.kube\/config/\/etc\/rancher\/k3s\/k3s.yaml/g' ~/kube-ps1/kube-ps1.sh
# 적용
source ~/.bashrc
# 현재 컨텍스트 이름을 가져옴
CONTEXT=`kubectl config current-context`
echo $CONTEXT
# kubernetes-admin@kubernetes (K8s) 또는 default (K3s) 를 kube로 축약 표현
kubectl config rename-context "$CONTEXT" "kube"
# 만약에 쿠버네티스 심볼을 보고 싶지 않다면 아래와 같이 KUBE_PS1_SYMBOL_ENABLE=false 를 추가하고 적용하자
# 추후에는 직접 파일을 열어 false -> true로 변경 가능하다
cat <<EOF >> .bashrc
KUBE_PS1_SYMBOL_ENABLE=false
EOF
source ~/.bashrc
# kube-ps1 off/on
kubeoff
kubeon