2 min read

[k8s] kubectl 기본 명령어

이번에는 kubectl 명령어에 대해 알아보자. kubectl은 쿠버네티스 컨테이너 오케스트레이션 시스템을 관리하기 위한 명령어 도구 이다. 다양한 기능을 제공하며, 숙련되면 클러스터를 효율적으로 관리하고 작업을 자동화하는 데 큰 도움이 된다. 또한, kubectl을 사용하여 Pod, Deployment, Service 등 다양한 쿠버네티스 리소스를 생성, 조회, 수정, 삭제할 수 있습니다. 또한 리소스에 대한 상세 정보를 표시하고, 로그를 확인할 수 있다. kubectl은 클러스터 정보를 확인 및 구성 변경에도 사용된다. 노드, 이벤트, 설정 등을 확인하고 클러스터 구성을 변경할 수 있다.

kubectl의 주요 기능은 다음과 같다.

  • 리소스 관리: Pod, Deployment, Service 등 다양한 쿠버네티스 리소스를 생성, 조회, 수정, 삭제
  • 네임스페이스 관리: 네임스페이스 생성, 조회, 삭제, 특정 네임스페이스에서 작업
  • 클러스터 관리: 노드, 이벤트, 설정 등 클러스터 정보 확인, 클러스터 구성 변경
  • 자동화: YAML 파일 사용하여 리소스 배포 및 업데이트, 스크립팅 사용하여 kubectl 명령어 자동화

그럼 이제 하나씩 kubectl에 대해 간단히 알아보자. 자세한 공식문서는 다음과 같다.

kubectl 명령어 소개

kubectl의 명령어는 기본적으로 다음의 규칙을 따른다.

kubectl [command] [TYPE] [NAME] [flags]
  • command:
    • 하나 이상의 리소스에서 수행하려는 동작을 지정한다.
    • 예: create, get, describe, delete
  • TYPE:
    • 리소스 타입을 지정한다. 리소스 타입은 대소문자를 구분하지 않으며 단수형, 복수형 또는 약어 형식을 지정할 수 있다.
    • 예를 들어, 다음의 명령은 동일한 출력 결과를 생성한다.
  • NAME:
    • 리소스 이름을 지정한다. 이름은 대소문자를 구분한다. 이름을 생략하면, 모든 리소스에 대한 세부 사항이 표시된다.
    • 예: kubectl get pods
  • flags:
    • 선택적 플래그를 지정한다.
    • 예를 들어, -s 또는 –server 플래그를 사용하여 쿠버네티스 API 서버의 주소와 포트를 지정할 수 있다.

kubectl 명령어 사용

다음은 알아두면 편한 kubectl 명령어에 대해 알아 보자.

Node 조회

우선 쿠버네티스 클러스터에 있는 모든 노드를 나열 해보자.

kubectl get nodes

여기에 ‘-o wide’ 옵션을 넣어 주면 더 많은 정보를 확인할 수 있다. 특히 각 노드에서 어떤 컨테이너가 실행중 인지 확인할 수가 있다.

kubectl get nodes -o wide

pod 조회

다음은 쿠버네티스 클러스터의 pods를 나열해보자. 여기서 각 pods는 클러스터 내의 실행중인 애플리케이션의 인스턴스를 나타낸다.

kubectl get pods -o wide

리소스 상세 정보

쿠버네티스 클러스터 내 특정 리소스의 상세정보를 표시하는데 사용된다.

kubectl describe nodes
kubectl describe pods

pod 배포

이번에는 pods를 배포하는데 사용하는 명령어이다. 이를 사용해 각 노드에 이미지를 생성해서 지정해줄 수 있다.

kubectl run <이름> --image=<이미지> [옵션]

로그 확인

쿠버네티스 클러스터 내의 특정 pods에서 실행중인 컨테이너의 로그를 출력하는데 사용되는 커맨드는 다음과 같다.

kubectl logs <pod 이름>