Container Orchestration/Kubernetes

kubectl 명령어 정리

Somaz 2022. 8. 10. 11:55
728x90
반응형

 

Overview

Kubernetes 환경에서 클러스터 리소스를 생성, 수정, 조회, 삭제하는 핵심 CLI 도구가 바로 kubectl이다.
운영자, 개발자, 데브옵스 모두가 매일 사용하는 만큼 kubectl 명령어를 효율적으로 정리해두면 실무에서 큰 도움이 된다.

 

이 글에서는 kubectl의 대표 명령어들을 실용적인 예시와 함께 정리하고, 자주 사용하는 옵션들과 조합까지 소개한다.
처음 시작하는 입문자부터 실무 운영자까지 바로 활용할 수 있는 kubectl 명령어 모음집이다.

 

 

 

 

 

 

 


 

 

kubectl 명령어 정리

 

 

 

1. 버전 및 리소스 확인

 

 

클라이언트 및 서버 버전 확인

kubectl version --short

 

사용 가능한 리소스 종류 조회

kubectl api-resources

 

 

 

 

 

2. 리소스 생성/수정/삭제

 

▶ 리소스 생성

 

 

YAML 파일로 생성

kubectl apply -f nginx-pod.yaml

 

 

 

ConfigMap 생성 (직접 입력)

kubectl create configmap my-config --from-literal key=value

 

 

 

ConfigMap 생성 (파일 기반)

kubectl create configmap my-config --from-file config.txt

 

 

 

ConfigMap 생성 (env 파일)

kubectl create configmap my-config --from-env-file settings.env

 

 


Pod 직접 생성 (실험용)

kubectl run nginx --image=nginx

 

 

 

Deployment 직접 생성

kubectl create deployment my-app --image=myapp:v1

 

 

 

 

 

▶ 리소스 수정

 

 

편집기로 리소스 수정

kubectl edit pod my-pod

 

 

 

이미지 업데이트 (디플로이먼트)

kubectl set image deployment/my-deploy nginx=nginx:1.19 --record

 

 

 

 

▶ 리소스 삭제

 

 

YAML로 삭제

kubectl delete -f nginx-pod.yaml

 

 

 

특정 리소스 삭제

kubectl delete pod my-pod

 

 

 

전체 리소스 삭제 (주의!)

kubectl delete deployment,pod,rs --all

 

 

 

 

 

 

 

 

3. 리소스 조회 및 상태 확인

 

 

전체 Pod 조회

kubectl get pods

 

 

 

상세 정보 확인

kubectl describe pod my-pod

 

 

 

로그 확인

kubectl logs my-pod

 

 

라벨 포함 조회

kubectl get pods --show-labels

 

 

 

특정 라벨만 필터링

kubectl get pods -l app=nginx

 

 

 

 

 


 

 

 

 

 

 

4. 파드 내부 접근 및 명령 실행

 

 

Pod 내부 bash/sh 진입

kubectl exec -it my-pod -- bash

kubectl exec -it my-pod -- sh

 

 

특정 컨테이너로 접근

kubectl exec -it my-pod -c sidecar-container -- bash

kubectl exec -it my-pod -c sidecar-container -- sh

 

 

 

 

 


 

 

 

 

5. 배포 및 롤백 관리

 

 

배포 변경 기록 확인

kubectl rollout history deployment my-deployment

 

 

롤백 실행

kubectl rollout undo deployment my-deployment --to-revision=1

 

 

 

수동 스케일 조정

kubectl scale deployment my-deployment --replicas=3

 

 

 

 


 

 

 

 

6. 테스트용 ConfigMap 빠르게 생성 (dry-run)

 

 

YAML 생성만 하고 적용하지 않음

kubectl create configmap quick-cm --from-literal key=value --dry-run=client -o yaml > cm.yaml

 

 

 

 


 

 

 

 

7. 리소스 상태/에러 확인 및 디버깅 팁

 

 

이벤트 확인

kubectl get events --sort-by='.metadata.creationTimestamp'

 

→ 리소스 생성/삭제, 오류 발생 시 어떤 이벤트가 발생했는지 시간 순으로 확인 가능

 

 

 

네임스페이스별 로그 확인

kubectl logs -n kube-system kube-apiserver-<master-node>

 

→ 클러스터 문제 발생 시 kube-system 네임스페이스의 주요 컨트롤러 로그를 확인

 

 

 

 

 


 

 

 

 

8. 네임스페이스 활용

 

 

특정 네임스페이스에서만 조회

kubectl get pods -n my-namespace

 

 

 

기본 네임스페이스 변경

kubectl config set-context --current --namespace=my-namespace

 

 

 

전체 네임스페이스 조회

kubectl get pods --all-namespaces

 

 

 

 


 

 

 

 

9. 리소스 상태 시각화 툴 추천

 

 

K9s: 터미널 기반 쿠버네티스 리소스 UI

 

brew install k9s (Mac) / snap install k9s (Linux)
→ 빠르게 리소스를 탐색하고, 로그 확인 및 명령 실행 가능

 

 

 

 

 


 

 

 

 

마무리

Kubernetes에서 kubectl은 단순한 명령어 집합이 아니라, 클러스터와 직접 상호작용하는 가장 기본적이면서도 중요한 도구이다.

  • YAML vs CLI: 반복 작업은 YAML로, 빠른 실험은 CLI로 접근하는 것이 효율적이다.
  • 자주 사용하는 옵션들 (-o yaml, --record, -l)을 익히면 실전에서 훨씬 빠르게 대응할 수 있다.
  • 에러가 나거나 동작이 예상과 다를 경우, describe, logs, edit 조합으로 디버깅 루틴을 만들어보자.

 

 

kubectl에 익숙해지는 것은 곧 쿠버네티스 운영의 기초 체력을 다지는 과정이다.
시간이 날 때마다 한두 가지 명령어를 실습해보며 체화해두면 실무에서 훨씬 빠르게 대응할 수 있다.

 

 

 

 

 

 

 

 

 

 

728x90
반응형