쿠버네티스 팁 정리 - 커맨드 편

Chanmin, Kim·2022년 4월 24일
0

Kubernetes

목록 보기
2/3
post-thumbnail

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

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

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

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

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


커맨드 앨리어스 지정하기

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

kubectl 커맨드 대신 k 라는 앨리어스를 사용하는 예시

  • 변경 이전
kubectl get nodes
  • 변경 이후
k get nodes

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

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

  • 앨리어스 생성
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 커맨드의 자동완성 기능을 활용할 수 있습니다.

BASH 설정 방법

echo "source <(kubectl completion bash)" >> ~/.bashrc

zsh 설정 방법

echo "[[ $commands[kubectl] ]] && source <(kubectl completion zsh)" >> ~/.zshr

해당 커맨드를 적용하면 kubectl 입력 후 탭 키를 입력할 시 사용 가능한 옵션들이 함께 출력됩니다.


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

kubectl get nodes 라고 입력하면 아래와 같이 요약된 결과를 얻을 수 있습니다.

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

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 플래그를 붙이면 컨테이너 상태가 변화할 때마다 로그를 자동으로 추적할 수 있습니다.

  1. 디플로이먼트를 통해 파드를 생성한 직후 모습

  2. 컨테이너 상태가 변화하니 자동으로 변경된 상태 정보가 출력되는 모습입니다.

profile
Public Cloud 및 Cloud Native 기술에 관심이 많습니다.

0개의 댓글