반응형

목차

  1. Part.1
    1. kubectl get
    2. kubectl describe
    3. kubectl logs
    4. kubectl top
    5. kubectl version
  2. Part.2
    1. kubectl explain
    2. kubectl cluster-info
    3. kubectl auth can-i
    4. kubectl api-resources

kubectl get

kubectl get 명령어는 쿠버네티스(Kubernetes)에서 리소스를 조회하는 데 사용됩니다. 이 명령어에는 다양한 옵션이 제공됩니다. 각 옵션에 대한 설명과 함께 예시를 들어 설명하겠습니다.

  1. 기본 구조
    kubectl get [리소스 종류] [옵션]
  2. kubectl get 명령어로 조회 가능한 일부 리소스 유형
    • Pod (클러스터 내의 실행 중인 모든 Pod 조회)
    • Service
    • Deployment
    • ConfigMap
    • Secret
    • Node
    • Namespace
    • PersistentVolume
    • StorageClass
    • Ingress
  3. 옵션
    • --all-namespaces 또는 -A: 모든 네임스페이스에서 리소스를 조회합니다.
      예시: kubectl get pods --all-namespaces

    • --selector 또는 -l: 라벨 셀렉터를 사용하여 특정 리소스를 조회합니다. 
      예시: kubectl get pods -l app=myapp

    • --output 또는 -o: 출력 형식을 지정합니다. 예를 들어, "-o json" 명령은 JSON 형식으로 출력합니다.
       예시: kubectl get pods -o wide

    • --watch 또는 -w: 리소스 변경 사항을 실시간으로 모니터링합니다. 
      예시: kubectl get pods -w

    • --sort-by: 조회 결과를 정렬합니다. 예를 들어, "--sort-by=.metadata.creationTimestamp" 명령은 생성된 시간에 따라 정렬합니다.
       예시: kubectl get pods --sort-by=.status.phase

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

    • --show-labels: 리소스에 대한 라벨 정보를 표시합니다. 
      예시: kubectl get pods --show-labels

    • --no-headers: 표 헤더를 표시하지 않습니다. 
      예시: kubectl get pods --no-headers

    • --export: 출력 결과에서 불필요한 정보를 제거합니다.
      예시: kubectl get pod my-pod -o yaml --export > my-pod.yaml
      ("my-pod" 이름을 가진 파드의 YAML 파일을 생성합니다. 이 때 --export 옵션을 사용하면 출력 결과에서 상태 및 메타데이터와 같은 불필요한 정보가 제거됩니다.)

    • --field-selector와 함께 사용할 수 있는 필드는 다양합니다. 예를 들어, "status.phase" 필드는 파드의 실행 상태를 나타내며, "metadata.name" 필드는 파드의 이름을 나타냅니다.

    • --show-kind: 조회 결과에 리소스 유형을 표시합니다.
      예시: kubectl get pods --show-kind

    • --ignore-not-found: 조회 결과가 없는 경우 에러를 발생시키지 않고 정상적으로 종료합니다.
       예시: kubectl get pods my-pod --ignore-not-found

    • --timeout: 조회 시간 제한을 설정합니다. 예를 들어, "--timeout=5s" 명령은 5초 동안 조회를 시도합니다. 
      예시: kubectl get pods --timeout=10s

    • --selector와 함께 사용할 수 있는 라벨 셀렉터의 사용 예시는 다음과 같습니다.
      • kubectl get pods -l app=myapp
        "app=myapp" 라벨을 가진 파드를 조회합니다.

      • kubectl get pods -l app!=myapp
        "app" 라벨이 "myapp"이 아닌 파드를 조회합니다.

      • kubectl get pods -l 'app in (myapp, yourapp)'
        "app" 라벨이 "myapp" 또는 "yourapp"인 파드를 조회합니다.

      • kubectl get pods -l 'app notin (myapp, yourapp)'
        "app" 라벨이 "myapp" 또는 "yourapp"이 아닌 파드를 조회합니다.

kubectl describe

kubectl describe 명령어는 Kubernetes 리소스의 상세 정보를 출력하는 명령어입니다. 이 명령어를 사용하면, 특정 리소스에 대한 자세한 정보를 확인할 수 있습니다.

  1. 기본 구조
    kubectl describe [리소스 종류] [리소스 이름]

    예시: kubectl describe pod my-pod
    my-pod 이름의 파드 리소스에 대한 자세한 정보를 출력할 수 있습니다.

  2. 옵션
    • --namespace: 리소스가 포함된 네임스페이스를 지정합니다.

      예시: kubectl describe pod my-pod --namespace my-namespace 
      (my-namespace 네임스페이스에 속한 my-pod 이름의 파드 리소스에 대한 자세한 정보를 출력합니다.)

    • --show-events: 리소스의 이벤트를 출력합니다.

      예시: kubectl describe pod my-pod --show-events
       (my-pod 이름의 파드 리소스에 대한 자세한 정보와 해당 리소스의 이벤트를 함께 출력합니다.)

    • --export: YAML 형식으로 출력합니다.

      예시: kubectl describe pod my-pod --export 
      (my-pod 이름의 파드 리소스에 대한 자세한 정보를 YAML 형식으로 출력합니다.)

    • --recursive: 서브리소스의 정보도 출력합니다.

      예시: kubectl describe deployment my-deployment --recursive
       (my-deployment 이름의 디플로이먼트 리소스에 대한 자세한 정보와 해당 디플로이먼트 리소스에 포함된 파드 리소스의 자세한 정보도 함께 출력합니다.)

kubectl logs

kubectl logs 명령어는 Kubernetes 파드 내부에서 실행 중인 컨테이너의 로그를 출력하는 명령어입니다. 이 명령어를 사용하면, 파드 내부에서 실행 중인 컨테이너의 로그를 실시간으로 확인하거나 파일로 저장할 수 있습니다.

  1. 기본 구조
    kubectl logs [파드 이름] [컨테이너 이름]

    예시: kubectl logs my-pod my-container
    my-pod 이름의 파드 내부에서 my-container 이름의 컨테이너의 로그를 출력할 수 있습니다.

  2. 옵션
    • --namespace: 파드가 포함된 네임스페이스를 지정합니다.

      예시: kubectl logs my-pod -n my-namespace my-container
       (my-namespace 네임스페이스에 속한 my-pod 이름의 파드 내부에서 my-container 이름의 컨테이너의 로그를 출력합니다.)

    • --follow, -f: 로그를 실시간으로 출력합니다.

      예시: kubectl logs my-pod my-container -f 
      (my-pod 이름의 파드 내부에서 my-container 이름의 컨테이너의 로그를 실시간으로 출력합니다.)

    • --tail: 출력할 로그 라인 수를 지정합니다.

      예시: kubectl logs my-pod my-container --tail=50 
      (my-pod 이름의 파드 내부에서 my-container 이름의 컨테이너의 로그를 최근 50개 라인만 출력합니다.)

    • --since: 출력할 로그의 시작 시간을 지정합니다.

      예시: kubectl logs my-pod my-container --since=1h
       (my-pod 이름의 파드 내부에서 my-container 이름의 컨테이너에서 1시간 이전부터 출력할 로그를 선택합니다.)

kubectl top

kubectl top 명령어는 Kubernetes 클러스터의 리소스 사용량을 확인하는 명령어입니다. 이 명령어를 사용하면, 노드나 파드 등의 리소스 사용량을 확인할 수 있습니다.

  1. 기본 구조
    kubectl top [리소스 종류] [리소스 이름]

    예시: kubectl top pods
    클러스터 내 모든 파드의 리소스 사용량을 확인할 수 있습니다.

    예시2: kubectl top nodes
    클러스터 내 모든 노드의 리소스 사용량을 확인할 수 있습니다.

  2. 옵션
    • --containers: 컨테이너 단위의 리소스 사용량을 확인합니다.

      예시: kubectl top pods --containers 
      (모든 파드의 컨테이너 단위의 리소스 사용량을 확인합니다.)

    • --heapster-namespace: Heapster의 네임스페이스를 지정합니다.

      예시: kubectl top pods --heapster-namespace=kube-system
       (Heapster가 설치된 kube-system 네임스페이스에 대한 파드의 리소스 사용량을 확인합니다.)

kubectl version

kubectl version 명령어는 Kubernetes API 서버와 클라이언트의 버전 정보를 확인하는 명령어입니다. 이 명령어를 사용하면, Kubernetes 클러스터의 버전 정보와 현재 사용 중인 kubectl 명령어의 버전 정보를 확인할 수 있습니다.

  1. 기본 구조
    kubectl version
    클러스터의 버전 정보와 kubectl 명령어의 버전 정보가 출력됩니다.

  2. 옵션
    • --short: 간략한 버전 정보를 출력합니다.

      예시: kubectl version --short 
      (kubectl 명령어와 클러스터의 버전 정보를 간략하게 출력합니다.)

    • --client: 클라이언트의 버전 정보만 출력합니다.

      예시: kubectl version --client 
      (kubectl 명령어의 버전 정보만 출력합니다.)

    • --server: 서버의 버전 정보만 출력합니다.

      예시: kubectl version --server
       (클러스터의 API 서버 버전 정보만 출력합니다.)

 

반응형