반응형
목차
- Part.1
- kubectl get
- kubectl describe
- kubectl logs
- kubectl top
- kubectl version
- Part.2
- kubectl explain
- kubectl cluster-info
- kubectl auth can-i
- kubectl api-resources
kubectl get
kubectl get 명령어는 쿠버네티스(Kubernetes)에서 리소스를 조회하는 데 사용됩니다. 이 명령어에는 다양한 옵션이 제공됩니다. 각 옵션에 대한 설명과 함께 예시를 들어 설명하겠습니다.
- 기본 구조
kubectl get [리소스 종류] [옵션] - kubectl get 명령어로 조회 가능한 일부 리소스 유형
- Pod (클러스터 내의 실행 중인 모든 Pod 조회)
- Service
- Deployment
- ConfigMap
- Secret
- Node
- Namespace
- PersistentVolume
- StorageClass
- Ingress
- 옵션
- --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 get pods -l app=myapp
- --all-namespaces 또는 -A: 모든 네임스페이스에서 리소스를 조회합니다.
kubectl describe
kubectl describe 명령어는 Kubernetes 리소스의 상세 정보를 출력하는 명령어입니다. 이 명령어를 사용하면, 특정 리소스에 대한 자세한 정보를 확인할 수 있습니다.
- 기본 구조
kubectl describe [리소스 종류] [리소스 이름]
예시: kubectl describe pod my-pod
my-pod 이름의 파드 리소스에 대한 자세한 정보를 출력할 수 있습니다. - 옵션
- --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 이름의 디플로이먼트 리소스에 대한 자세한 정보와 해당 디플로이먼트 리소스에 포함된 파드 리소스의 자세한 정보도 함께 출력합니다.)
- --namespace: 리소스가 포함된 네임스페이스를 지정합니다.
kubectl logs
kubectl logs 명령어는 Kubernetes 파드 내부에서 실행 중인 컨테이너의 로그를 출력하는 명령어입니다. 이 명령어를 사용하면, 파드 내부에서 실행 중인 컨테이너의 로그를 실시간으로 확인하거나 파일로 저장할 수 있습니다.
- 기본 구조
kubectl logs [파드 이름] [컨테이너 이름]
예시: kubectl logs my-pod my-container
my-pod 이름의 파드 내부에서 my-container 이름의 컨테이너의 로그를 출력할 수 있습니다. - 옵션
- --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시간 이전부터 출력할 로그를 선택합니다.)
- --namespace: 파드가 포함된 네임스페이스를 지정합니다.
kubectl top
kubectl top 명령어는 Kubernetes 클러스터의 리소스 사용량을 확인하는 명령어입니다. 이 명령어를 사용하면, 노드나 파드 등의 리소스 사용량을 확인할 수 있습니다.
- 기본 구조
kubectl top [리소스 종류] [리소스 이름]
예시: kubectl top pods
클러스터 내 모든 파드의 리소스 사용량을 확인할 수 있습니다.
예시2: kubectl top nodes
클러스터 내 모든 노드의 리소스 사용량을 확인할 수 있습니다. - 옵션
- --containers: 컨테이너 단위의 리소스 사용량을 확인합니다.
예시: kubectl top pods --containers
(모든 파드의 컨테이너 단위의 리소스 사용량을 확인합니다.) - --heapster-namespace: Heapster의 네임스페이스를 지정합니다.
예시: kubectl top pods --heapster-namespace=kube-system
(Heapster가 설치된 kube-system 네임스페이스에 대한 파드의 리소스 사용량을 확인합니다.)
- --containers: 컨테이너 단위의 리소스 사용량을 확인합니다.
kubectl version
kubectl version 명령어는 Kubernetes API 서버와 클라이언트의 버전 정보를 확인하는 명령어입니다. 이 명령어를 사용하면, Kubernetes 클러스터의 버전 정보와 현재 사용 중인 kubectl 명령어의 버전 정보를 확인할 수 있습니다.
- 기본 구조
kubectl version
클러스터의 버전 정보와 kubectl 명령어의 버전 정보가 출력됩니다. - 옵션
- --short: 간략한 버전 정보를 출력합니다.
예시: kubectl version --short
(kubectl 명령어와 클러스터의 버전 정보를 간략하게 출력합니다.) - --client: 클라이언트의 버전 정보만 출력합니다.
예시: kubectl version --client
(kubectl 명령어의 버전 정보만 출력합니다.) - --server: 서버의 버전 정보만 출력합니다.
예시: kubectl version --server
(클러스터의 API 서버 버전 정보만 출력합니다.)
- --short: 간략한 버전 정보를 출력합니다.
반응형
'Container > Kubernetes' 카테고리의 다른 글
[Kubernetes] Kubectl 명령어 모음 [5] 배포 (0) | 2023.04.02 |
---|---|
[Kubernetes] Kubectl 명령어 모음 [4] 확인 Part.2 (0) | 2023.04.02 |
[Kubernetes] Kubectl 명령어 모음 [2] 수정, 실행, 대기 (0) | 2023.04.02 |
[Kubernetes] Kubectl 명령어 모음 [1] 생성, 삭제, 복사 (0) | 2023.04.02 |
[Kubernetes] Kubernetes가 애플리케이션을 배포, 운영하는 방식 (0) | 2023.04.02 |