3개의 krew 플러그인에 대해서 알아봅시다.
- kube-ctx 플러그인: 컨텍스트
- kube-ns 플러그인: 네임스페이스
- kube-ps1 플러그인: 프롬프트
--
1) kube-ctx 컨텍스트
실제 환경에서는 dev/stage/product 또는 alpha/beta/real 등으로
각 단계별로 클러스터를 분리해서 운영하거나 다양한 리전을 동시에 사용하는 것이 일반적입니다.
따라서 이럴 때 혼동이 올 수 있기 때문에 플러그인을 사용하면 유용합니다.
kube-ctx 플러그인: 컨텍스트. 내가 원하는 클러스터를 선택 가능
# 설치
kubectl krew install ctx
# 결과
node1:~$ k ctx
kubernetes-admin@cluster.local
로컬호스트에 등록한 클러스터 이름이 보입니다.
node1:~$ k ctx kubernetes-admin@cluster.local
Switched to context "kubernetes-admin@cluster.local".
k ctx {cluster-name} 으로 클러스터를 변경 가능합니다.
--
2) kube-ns 네임스페이스
kube-ns 플러그인: 네임스페이스.
# 설치
kubectl krew install ns
# 결과
node1:~$ k ns
default
kube-node-lease
kube-public
kube-system
현재 클러스터의 전체 네임스페이스 현황이 출력됩니다.
#현재 네임스페이스의 pod 조회
node1:~$ k get pod
No resources found in default namespace
# kube-system으로 네임스페이스 변경
node1:~$ k ns kube-system
Context "kubernetes-admin@cluster.local" modified.
Active namespace is "kube-system".
# kube-system 네임스페이스에서 pod 조회
node1:~$ k get pod
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-56fd7b8dc-5jvpq 1/1 Running 14 (13h ago) 2d6h
calico-node-f6hvh 1/1 Running 1 (13h ago) 2d6h
calico-node-f727b 1/1 Running 0 2d6h
calico-node-mwf9w 1/1 Running 1 (13h ago) 2d6h
coredns-74d6c5659f-qmwq4 1/1 Running 0 13h
.
.
k get pod는 현재 네임스페이스에서 실행 중인 pod의 정보만 보여줍니다.
k ns 플러그인을 쓰지 않는다면 -n으로 네임스페이스를 지정해서 조회하면 됩니다.
# k get pod -n {namespace}
k get pod -n kube-system
--
3) kube-ps1 프롬프트
kube-ps1 플러그인: 프롬프트
커맨드라인의 프롬프트에서 클러스터와 네임스페이스 이름을 확인할 수 있는 플러그인입니다.
실수 방지용이라고 할 수 있습니다.
git clone https://github.com/jonmosco/kube-ps1.git
# git 소스 받기
git clone https://github.com/jonmosco/kube-ps1.git
# 실행 권한 부여
node1:$ chmod +x ~/kube-ps1/kube-ps1.sh
# bashrc 추가
source $HOME/kube-ps1/kube-ps1.sh
PS1='[\u@\h \W $(kube_ps1)]\$ '
KUBE_PS1_SYMBOL_ENABLE=false
# bashrc 파일 재실행
source ~/.bashrc
위 명령을 실행하면 이제 커맨드라인(터미널)에서 직관적으로 알 수 있습니다.
컨텍스트: kubernetes-admin@cluster.local
네임스페이스: kube-system
이라는 뜻이네요.