본문 바로가기
카테고리 없음

(4) kube-ctx, kube-ns, kube-ps1 활용

by lumination 2023. 11. 27.

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

이라는 뜻이네요.