Skip to content

Instantly share code, notes, and snippets.

@ianychoi
Last active July 31, 2021 15:59
Show Gist options
  • Save ianychoi/63408dbb3aaace74b45354002621afaa to your computer and use it in GitHub Desktop.
Save ianychoi/63408dbb3aaace74b45354002621afaa to your computer and use it in GitHub Desktop.
쿠버네티스 - 명령어 사용 팁 (kubectx, kubens, kube-ps1)
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment