이번에는 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 이름>