Post

[Kubernetes] kubectl get command

[Kubernetes] kubectl get command

기본 구조

1
kubectl get [리소스 종류] [옵션]
  • 리소스 종류
    • Pod
    • Service
    • Deployment
    • ConfigMap
    • Secret
    • Node
    • Namespace
    • PersistentVolume
    • StorageClass
    • Ingress

[명령어] --help를 입력하면 더 다양한 옵션들을 찾을 수 있다.

Option

  • --all-namespaces, -A: 모든 네임스페이스에서 리소스를 조회
    1
    
      kubectl get pods --all-namespaces
    
  • --selector, -l: 라벨 셀렉터를 사용하여 특정 리소스를 조회
    1
    
      kubectl get pods -l app=myapp
    
  • --output, -o: 출력 형식을 지정
    1
    
      kubectl get pods -o wide
    
  • --watch, -w: 리소스 변경 사항을 실시간으로 모니터링
    1
    
      kubectl get pods -w
    
  • --sort-by: 조회 결과를 정렬
    1
    2
    
      # "--sort-by=.metadata.creationTimestamp" 명령은 생성된 시간에 따라 정렬
      kubectl get pods --sort-by=.status.phase
    

- --field-selector: 필드 셀렉터를 사용하여 특정 필드의 값을 기준으로 리소스를 조회 bash kubectl get pods --field-selector=status.phase=Running

  • --show-labels: 리소스에 대한 라벨 정보를 표시
    1
    
      kubectl get pods --show-labels
    
  • --no-headers: 표 헤더를 표시하지 않는다.
    1
    
      kubectl get pods --no-headers
    
  • --export: 출력 결과에서 불필요한 정보를 제거
    1
    2
    
      # "my-pod" 이름을 가진 파드의 YAML 파일을 생성, 이 때 --export 옵션을 사용하면 출력 결과에서 상태 및 메타데이터와 같은 불필요한 정보가 제거
      kubectl get pod my-pod -o yaml --export > my-pod.yaml
    
  • --field-selector와 함께 사용할 수 있는 필드는 다양
    • "status.phase" 필드는 파드의 실행 상태를 나타내며, "metadata.name" 필드는 파드의 이름을 나타낸다.
  • --show-kind: 조회 결과에 리소스 유형을 표시
    1
    
      kubectl get pods --show-kind
    
  • --ignore-not-found: 조회 결과가 없는 경우 에러를 발생시키지 않고 정상적으로 종료
    1
    
      kubectl get pods my-pod --ignore-not-found
    
  • --timeout: 조회 시간 제한을 설정
    1
    2
    
      # "--timeout=5s" 명령은 5초 동안 조회를 시도
      kubectl get pods --timeout=10s
    
  • --selector와 함께 사용할 수 있는 라벨 셀렉터의 사용 예시는 다음과 같다.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
      # "app=myapp" 라벨을 가진 파드를 조회
      kubectl get pods -l app=myapp
    
      # "app" 라벨이 "myapp"이 아닌 파드를 조회
      kubectl get pods -l app!=myapp
    
      # "app" 라벨이 "myapp" 또는 "yourapp"인 파드를 조회
      kubectl get pods -l 'app in (myapp, yourapp)'
    
      # "app" 라벨이 "myapp" 또는 "yourapp"이 아닌 파드를 조회
      kubectl get pods -l 'app notin (myapp, yourapp)'
    

자주 쓰는 명령어는 kubectl-cheatsheet

This post is licensed under CC BY 4.0 by the author.