각종 tool 을 설치해 유용하게 사용해 보자. 1 kubectl 자동 완성 기능과 alias 사용하기 # 자동 완성 및 alias 축약 설정 source <(kubectl completion bash) echo 'source <(kubectl completion bash)' >> ~/.bashrc echo 'alias k=kubectl' >> ~/.bashrc echo 'complete -F __start_kubectl k' >> ~/.bashrc bash [root@kops-ec2 ~]# k get nodes NAME STATUS ROLES AGE VERSION i-002186eeab26ccd9a Ready node 27m v1.24.10 i-00d730519589b5519 Ready control-plane 29m v1.24.10 i-0c3ef584d2e10254b Ready node 27m v1.24.10 2 kubectl cli 플러그인 매니저, 쿠버네티스 크루(krew) 설치 macOS의 brew, Ubuntu의 apt 와 비슷한 역할 Krew를 통해 현재 90가지 이상의 플러그인1 을 설치할 수 있다. # 설치 curl -fsSLO https://github.com/kubernetes-sigs/krew/releases/download/v0.4.3/krew-linux_amd64.tar.gz tar zxvf krew-linux_amd64.tar.gz ./krew-linux_amd64 install krew tree -L 3 /root/.krew/bin # PATH 추가 export PATH="${PATH}:/root/.krew/bin" echo 'export PATH="${PATH}:/root/.krew/bin"' >>~/.bashrc # krew 확인 kubectl krew update kubectl krew search kubectl krew list kubectl krew install pluginxxxxxx 3 krew 로 kube-ctx, kube-ns 설치 및 사용 kube-ctx : 쿠버네티스 컨텍스트 사용 # 설치 kubectl krew install ctx # 컨텍스트 확인 kubectl ctx masterseo0.link # 컨텍스트 사용 kubectl ctx <각자 자신의 컨텍스트 이름> 4 kube-ns : 네임스페이스(단일 클러스터 내에서 가상 클러스터) 사용 # 설치 kubectl krew install ns # 네임스페이스 확인 [root@kops-ec2 ~]# kubectl ns default kube-node-lease kube-public kube-system # 터미널1 watch kubectl get pod # kube-system 네임스페이스 선택 사용 kubectl ns kube-system # default 네임스페이스 선택 - 디폴트로 변경. kubectl ns - 혹은 kubectl ns default 설치된 리스트 확인 [root@kops-ec2 ~]# kubectl krew list PLUGIN VERSION ctx v0.9.4 krew v0.4.3 ns v0.9.4 5 krew 로 기타 플러그인 설치 및 사용 : df-pv get-all ktop neat oomd view-secret # 설치 kubectl krew install df-pv get-all ktop neat oomd view-secret # get-all 사용 kubectl get-all -n kube-system kubectl get-all # ktop 사용 kubectl ktop # oomd 사용 kubectl oomd # df-pv 사용 kubectl df-pv [root@kops-ec2 ~]# kubectl df-pv INFO[2023-03-13T19:22:57+09:00] Either no volumes found in namespace/s: 'all' or the storage provisioner used for the volumes does not publish metrics to kubelet [root@kops-ec2 ~]# # view-secret 사용 : 시크릿 복호화 kubectl view-secret 6 kube-ps1 설치 및 사용 프롬프트에 Context와 Namespace를 표시 # 설치 및 설정 git clone https://github.com/jonmosco/kube-ps1.git /root/kube-ps1 cat <<"EOT" >> /root/.bash_profile source /root/kube-ps1/kube-ps1.sh KUBE_PS1_SYMBOL_ENABLE=true function get_cluster_short() { echo "$1" | cut -d . -f1 } KUBE_PS1_CLUSTER_FUNCTION=get_cluster_short KUBE_PS1_SUFFIX=') ' PS1='$(kube_ps1)'$PS1 EOT # 적용 exit exit sodo su - # default 네임스페이스 선택 kubectl ns default (⎈|masterseo0:default) [root@kops-ec2 ~]# kubectl ns default Context "masterseo0.link" modified. Active namespace is "default". (⎈|masterseo0:default) [root@kops-ec2 ~]# (⎈|masterseo0:default) [root@kops-ec2 ~]# 감사합니다.