Notice
Recent Posts
Recent Comments
관리 메뉴

즐겁게, 코드

쿠버네티스 사용 시 편리한 커맨드 팁 정리 본문

☁️ 클라우드/Kubernetes

쿠버네티스 사용 시 편리한 커맨드 팁 정리

Chamming2 2022. 5. 8. 14:06

CLI 환경에서 쿠버네티스를 조작하다 보면 불편한 점이 종종 생기는데요, 오늘은 쿠버네티스를 조금이라도 더 간편하게 사용하기 위한 방법들을 소개해보려 합니다. 

리소스 이름 축약어 사용하기

리소스 이름은 축약어를 사용할 수 있습니다.

자주 사용되는 리소스 축약어 목록

  • nodeno
  • podpo
  • deploymentdeploy
  • servicesvc
  • namespacens
  • configmapcm

추가적으로 필요한 리소스들의 축약어 목록은 공식 문서 - 리소스 타입 에서도 확인해볼 수 있습니다.

커맨드 앨리어스 지정하기

kubectl 커맨드를 매번 입력하는 대신 .zshrc 또는 .bash_profile 등의 에디터 설정 파일에서 앨리어스를 지정하면 보다 편하게 커맨드를 작성할 수 있습니다.


  • [적용 이전]
kubectl get nodes
  • [적용 이후]
k get nodes

kubectl 대신 k 라는 약어만으로 동일한 동작을 수행할 수 있게 됩니다.

이를 응용해, 자주 사용하는 커맨드를 앨리어스로 지정할 수도 있습니다.

비교적 복잡한 커맨드를 앨리어스화하는 예시

✅ 앨리어스 지정 시, 커맨드에 띄어쓰기를 포함할 경우에는 반드시 시작과 끝을 ' 또는 " 기호로 감싸야만 합니다.
  • 앨리어스 생성
alias ksys='kubectl --namespace=kube-system'
alias ksysd='ksys describe'
  • [적용 이전]
kubectl describe pod kube-proxy-12345 --namespace=kube-system
  • [적용 이후]
# 쿠버네티스 시스템 네임스페이스의 파드 상세정보를 조회
ksysd pod kube-proxy-12345

kubectl 커맨드 자동완성 사용하기

bash 또는 zsh 쉘을 사용하고 있을 경우 kubectl 커맨드의 자동완성 기능을 활용할 수 있습니다.

자동완성 기능을 적용하면 kubectl, kubectl get ~ 까지만 입력한 후 탭 키를 입력하면 이어서 사용 가능한 커맨드들이 함께 출력됩니다.


  • BASH 설정 방법
echo "source <(kubectl completion bash)" >> ~/.bashrc
  • zsh 설정 방법
echo "[[ $commands[kubectl] ]] && source <(kubectl completion zsh)" >> ~/.zshr

kubectl 까지만 입력하고 탭을 누르면 이어서 사용할 수 있는 커맨드 목록이 출력됩니다.

구체화 & 포맷화된 출력 결과 확인하기

kubectl get 커맨드를 사용하면 아래와 같이 리소스의 요약된 정보 목록이 출력됩니다.

# 현 클러스터의 노드 정보를 간략히 출력하는 예시

NAME          STATUS   ROLES                  AGE    VERSION
service       Ready    control-plane,master   139m   v1.23.3
service-m02   Ready    <none>                 138m   v1.23.3

만약 여기서 더 자세한 정보를 확인하고 싶으면 -o 플래그를 활용할 수 있습니다.

  • -o wide : 상세정보를 Plain Text 포맷으로 출력합니다.
# 현 클러스터의 노드 정보를 자세히 출력하는 예시

NAME          STATUS   ROLES                  AGE    VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION     CONTAINER-RUNTIME
service       Ready    control-plane,master   144m   v1.23.3   192.168.58.2   <none>        Ubuntu 20.04.2 LTS   5.10.47-linuxkit   docker://20.10.12
service-m02   Ready    <none>                 144m   v1.23.3   192.168.58.3   <none>        Ubuntu 20.04.2 LTS   5.10.47-linuxkit   docker://20.10.12
  • -o json : 상세정보를 JSON 포맷으로 출력합니다.
  • -o yaml : 상세정보를 YAML 포맷으로 출력합니다.

컨테이너 기동 상태를 watch 모드로 추적하기

디플로이먼트 또는 파드를 실행할 때 컨테이너가 제대로 실행되었는지 확인하기 위해 매번 kubectl get pod <파드명> 을 입력하는 대신, 더 좋은 방법이 있습니다.

 

파드를 실행한 후 컨테이너의 상태를 조회하기 위해,--watch 플래그를 붙이면 컨테이너 상태가 변화할 때마다 로그를 자동으로 추적할 수 있습니다.

watch 모드로 파드 생성 단계를 관찰하는 예시

디플로이먼트를 통해 파드를 생성한 직후의 모습
컨테이너 상태가 변화하니 자동으로 변경된 상태 정보가 출력되는 모습입니다.
반응형
Comments
소소한 팁 : 광고를 눌러주시면, 제가 뮤지컬을 마음껏 보러다닐 수 있어요!
와!! 바로 눌러야겠네요! 😆