본문 바로가기
INFRA/DevOps

kubectl 명령어 구조

by it-zero 2022. 4. 27.

안녕하세요 막내즈입니다~!~!!

오늘의 쿠버네티스의 kubectl 명령어를 살펴보도록 하겠습니다. 

(해당 환경은 리눅스입니다.)

kubectl 이란?

Kubectl은 쿠버네티스 클러스터에 명령을 내리는 CLI(Command Line Interface)입니다.

쿠버네티스에게 웹서버 n개 실행해줘! 라고 요청하는 것.

 

kubectl 기본구조

기본 구조 : kubectl [command] [TYPE] [NAME] [flags]

  • command : 자원에 실행할 명령(create, get, delete, edit) 
  • TYPE : 자원의 타입(node, pod, service, ...) 
  • NAME : 자원의 이름 
  • flags : 부가적으로 설정할 옵션 (--help, - o options, ...) 

 

kubectl 명령어

apply 원하는 상태를 적용합니다. 보통 -f 옵션으로 파일과 함께 사용합니다.
get 리소스 목록을 보여줍니다.
describe 리소스의 상태를 자세하게 보여줍니다.
delete 리소스를 제거합니다.
logs 컨테이너의 로그를 봅니다.
exec 컨테이너에 명령어를 전달합니다. 컨테이너에 접근할 때 주로 사용합니다.
config kubectl 설정을 관리합니다.

상태 설정하기 (apply)

원하는 리소스의 상태를 YAML로 작성하고 apply 명령어로 선언합니다.

kubectl apply -f [파일명 또는 URL]

특이한 점은 파일명뿐 아니라 URL도 입력이 가능하다는 것입니다. 실제로 많은 예제가 URL을 제공하고 있습니다.

 

리소스 목록보기 (get)

쿠버네티스에 선언된 리소스를 확인하는 명령어는 다음과 같습니다.

kubectl get [TYPE]

다양한 옵션 : 출력 형태를 변경할 수 있는 -o와 레이블을 확인할 수 있는 --show-labels를 알아봅니다.

 

리소스 상세 상태 보기 (describe)

쿠버네티스에 선언된 리소스의 상세한 상태를 확인하는 명령어는 다음과 같습니다.

kubectl describe [TYPE]/[NAME] 또는 [TYPE] [NAME]

특정 리소스의 상태가 궁금하거나 생성이 실패한 이유를 확인할 때 주로 사용합니다. 

 

리소스 제거 (delete)

쿠버네티스에 선언된 리소스를 제거하는 명령어는 다음과 같습니다.

kubectl delete [TYPE]/[NAME] 또는 [TYPE] [NAME]

 

 

컨테이너 로그 조회 (logs)

컨테이너의 로그를 확인하는 명령어는 다음과 같습니다.

kubectl logs [POD_NAME]

실시간 로그를 보고 싶다면 -f 옵션을 이용하고 하나의 Pod에 여러 개의 컨테이너가 있는 경우는 -c 옵션으로 컨테이너를 지정해야 합니다. 워드프레스 로그를 확인해보겠습니다.

 

컨테이너 명령어 전달 (exec)

컨테이너에 접속하는 명령어는 다음과 같습니다.

kubectl exec [-it] [POD_NAME] -- [COMMAND]

쉘로 접속하여 컨테이너 상태를 확인하는 경우에 -it 옵션을 사용하고 여러 개의 컨테이너가 있는 경우엔 -c 옵션으로 컨테이너를 지정합니다. 워드프레스 컨테이너에 접속해봅니다.

 

설정 관리 (config)

kubectl은 여러 개의 쿠버네티스 클러스터를 컨텍스트context로 설정하고 필요에 따라 선택할 수 있습니다. 현재 어떤 컨텍스트로 설정되어 있는지 확인하고 원하는 컨텍스트를 지정합니다.

# 현재 컨텍스트 확인
kubectl config current-context

# 컨텍스트 설정
kubectl config use-context minikube

 

 

kubectl 자동완성

리눅스 환경에서는 kubectl 명령을 지원하지 않아 쉘에 기능을 추가해야 합니다. → tab키 사용 가능  

source <(kubectl completion bash) 
source <(kubeadm completion bash) 
echo "source <(kubectl completion bash)" >> ~/.bashrc 
echo "source <(kubeadm completion bash)" >> ~/.bashrc

 

 

다음 시간에는 실습환경에서 명령어를 사용해보겠습니다. 

#막내즈 #쿠버네티스 #k8s #kubernetes #kubectl

'INFRA > DevOps' 카테고리의 다른 글

k8s 보안  (0) 2022.04.29
CI/CD 파이프라인 개념과 구축 방법  (0) 2022.04.29
DevOps의 핵심 CI/CD란?  (0) 2022.04.22
Pod  (0) 2022.04.21
kubernetes 설치 방법  (0) 2022.04.20

댓글