Cloud Native/K8s

k8s 실전: 기초

lys4321 2026. 2. 24. 01:25

kubectl get <리소스 타입> <리소스 명> [옵션]

  • 클러스터 내의 리소스 정보를 조회할 때 사용하는 명렁어
  • kubectl get all 사용 시, 모든 리소스 조회
  • 리소스 타입 목록
    • pods
    • services
    • deployments
    • nodes
    • namespaces
    • configmaps
  • 주로 사용되는 옵션
    • -o(--output)
      • 출력 형식을 지정
      • wide
      • yaml
      • json
      • name
    • -w(--wath)
      • 실시간으로 리소스 상태 변화를 감시
    • --show-labels
      • 리소스의 레이브 열을 추가해 출력
    • --sort-by
      • 지정된 JSON Path를 기준으로 리소스를 정렬
    • --all-namespaces
      • 모든 네임스페이스의 리소스를 조회
    • --namespace
      • 특정 네임스페이스의 리로스만 조회
    • --selector
      • 지정된 레이블 셀렉터와 일치하는 리소스만 조회
    • --field-selector
      • 지정된 필드 셀렉터와 일치하는 리소스만 조회
    • --limit
      • API 서버에서 가져올 리소스의 최대 개수 제한

kubectl describe <타입 명> <검색내용> [옵션]

  • 특정 리소스(오브젝트)에 대한 상세하고 포괄적인 정보를 조회하는 명령어
  • 문제해결(trouble shooting) 시 도움을 주는 도구
  • k8s 시스템 관점의 문제를 파악할 때 사용
  • 주로 사용되는 옵션
    • --all-namespaces
      • 모든 네임스페이스에 걸처 요청한 오브젝트를 나열
    • --filename
      • 설명할 리소소스를 포함하는 파일, 디렉터리, url을 지정
    • --selector
      • 지정한 레이블 쿼리를 기반으로 리소스 검색
    • --show-events
      • 설명되는 오브젝트와 관련된 이벤트를 표시할지 여부를 설정
    • --kustomize
      • Kustomize 디렉토리를 처리
    • --recursive
      • -f 로 지정된 디렉토리를 재귀적으로 처리

kubectl logs [-f] [-p] ( <파드명> [-c <컨테이너 명>] [옵션]

  • Pod나 지정된 리소스 내 컨테이너의 로그를 출력하는 명령어
  • 컨테이너 내 문제를 찾을 때 사용
  • 주로 사용되는 옵션
    • -f(--follow)
      • 로그를 실시간으로 스트리밍
    • -p(--previous)
      • Pod 내 컨테이너의 이전 인스턴스에 대한 로그를 출력
    • -c(--container)
      • 로그를 출력할 특정 컨테이너 이름을 지정
    • --all-containers
      • 지정된 Pod 내 모든 컨테이너의 로그를 가져옴
    • --all-pods
      • Deployment 등 지정된 리소스에 속한 모든 Pod의 로그를 가져옴
    • -selector
      • 지정된 레이블 쿼리를 기반으로 Pod 그룹의 로그를 필터링해 가져옴
    • --since
      • 상대적인 기간보다 최근에 기록된 로그 반환
    • --tail
      • 로그 파일에서 최근 몇 줄의 로그만 지정 시
    • --since-time
      • 특정 날짜 및 시간 이후에 기록된 로그만 반환
    • --timestamp
      • 로그에 타임스탬프 표함

kubectl exec <파드 명> [-c <컨테이너 명>] -- <실행할명령어>

  • 실행 중인 컨테이너 내부에서 직접 명령 실행 시 사용하는 명령
  • 도커의 컨테이너 exec와의 차이점
    • 도커는 로컬에서, 그리고 도커 데몬과 직접 통신해 컨테이너 런타임 수준에서 작동
    • k8s exec는 k8s API 서버를 통해 명령을 전달하며 명령을 내리는 Pod가 클러스터에만 있다면 상관없이 작동
    • API 서버가 대상 Pod에게 내리는 명령읜 kubelet이 명령을 받아 전달하고 kubelet이 런터임을 사용해 최종적으로 명령을 받아 실행
  • 옵션
    • -c(--container)
      • 명령을 실행할 특정 컨테이너 이름을 지정
      • -i
      • -t
      • --pod-running-timeout
        • 지정 시간 동안 하나의 파드가 실행될 때까지 대기
      • --quiet
        • 원격 세션의 출력만 인쇄하고 다른 메시지는 생략

kubectl cluster-info [flags] [옵션]

  • 클러스터의 가용성을 확인하는 도구
  • k8s 클러스터의 Control Plane 의 주소와 클러스터 서비스의 주소를 표시
  • ubernetes.io/cluster-service=true 레이블을 가진 서비스의 주소 또한 표시
  • 사용 가능한 하위 명령어인 dump 를 가짐
    • kubectl cluster-info dump
    • 디버깅 및 진단을 위한 정보를 덤프 함

kubectl api-resources [flags] [옵션]

  • 현재 접속한 k8s API 서버가 지원하는 모든 리소스 정보 목록을 조회
  • 주로 사용되는 옵션
    • --api-group
      • 특정 API 그룹만 조회
    • --namespaced
      • true로 설정 시, 네잍스페이스 범위의 리소스만 출력
      • flase로 설정 시, 클러스터 범위의 리소스만출력
    • -o(--output)
      • 출력 형식을 지정
    • --sort-by
      • 목록을 지정된 필드 기준으로 정렬

kubectl version [flags] [옵션]

  • 현재 사용중인 kubectl 클라이언트와 접속중인 k8s API 서버의 버전 정보를 출력
  • 주로 사용되는 옵션
    • --client
      • true 설정 시, 클러스터와의 통신없이 클라이언트의 버전 정보만 출력
    • -o(--output)
      • 출력 형식 지정