안녕하세요 막내즈입니다~!~!!
오늘의 쿠버네티스의 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 |
댓글