Kubectl

Kubectl은 Kubernetes 클러스터를 관리하고 상호작용하기 위한 명령줄 도구(Command Line Interface, CLI)입니다. 이를 통해 Kubernetes API 서버와 통신하며 클러스터의 리소스를 생성, 조회, 수정, 삭제 등의 작업을 수행할 수 있습니다137.

Kubectl의 주요 역할

  • 클러스터 관리: Kubernetes 클러스터의 리소스(Pod, Node, Service 등)를 생성, 조회, 수정, 삭제합니다.
  • 상태 확인 및 요청: 클러스터의 현재 상태를 확인하거나 원하는 상태를 요청합니다.
  • 디버깅 및 로그 조회: 컨테이너 로그를 확인하고 원격으로 접속하여 문제를 디버깅할 수 있습니다47.

Kubectl 명령어 구조

 
bash
kubectl [COMMAND] [TYPE] [NAME] [FLAGS]
  • COMMAND: 실행할 작업(예: create, get, delete, apply 등).
  • TYPE: 리소스 타입(예: pod, node, service 등).
  • NAME: 특정 리소스 이름(생략 시 모든 리소스 대상).
  • FLAGS: 추가 옵션(예: -o wide, --help 등)135.

주요 명령어

  1. 리소스 생성 및 적용
    • kubectl create: 새로운 리소스를 생성합니다.
       
      bash
      kubectl create namespace my-namespace
       
    • kubectl apply: YAML 파일을 사용해 리소스를 생성하거나 업데이트합니다.
       
      bash
      kubectl apply -f my-resource.yaml
  2. 리소스 조회
    • kubectl get: 리소스 목록을 조회합니다.
       
      bash
      kubectl get pods kubectl get nodes -o wide
  3. 리소스 상세 정보 확인
    • kubectl describe: 특정 리소스의 상세 정보를 확인합니다.
       
      bash
      kubectl describe pod <pod_name>
  4. 리소스 삭제
    • kubectl delete: 리소스를 제거합니다.
       
      bash
      kubectl delete pod <pod_name>
  5. 컨테이너 로그 조회
    • kubectl logs: 특정 Pod의 컨테이너 로그를 확인합니다.
       
      bash
      kubectl logs <pod_name>
  6. Pod 내부 명령 실행
    • kubectl exec: Pod 내부에서 명령어를 실행하거나 셸로 접속합니다.
       
      bash
      kubectl exec -it <pod_name> -- /bin/bash
  7. 포트 포워딩
    • 로컬 포트를 클러스터 내 특정 Pod 또는 서비스에 연결합니다.
       
      bash
      kubectl port-forward pod/<pod_name> 8080:80
  8. 설정 관리
    • 현재 컨텍스트 확인 및 변경:
       
      bash
      kubectl config current-context kubectl config use-context minikube

사용 예시

 
bash
# 모든 파드 조회 kubectl get pods
# 특정 파드 상세 정보 확인 kubectl describe pod my-pod
# YAML 파일을 사용해 리소스 생성 또는 업데이트 kubectl apply -f deployment.yaml
# 특정 파드 삭제 kubectl delete pod my-pod
# Pod 내부에서 셸 실행 kubectl exec -it my-pod -- /bin/bash
# 컨테이너 로그 실시간 조회 kubectl logs my-pod -f

특징 및 장점

  • Kubernetes API 서버와 직접 통신하여 클러스터를 제어할 수 있습니다.
  • YAML 파일을 사용해 선언적 방식으로 클러스터 상태를 정의하고 적용 가능합니다9.
  • 다양한 플래그와 옵션을 통해 출력 형식(JSON, YAML 등)과 필터링 기능을 제공합니다57.

Kubectl은 Kubernetes 환경에서 필수적인 도구로, 클러스터 관리와 디버깅 작업을 효율적으로 수행할 수 있도록 지원합니다.

Citations:

  1. https://kubernetes.io/ko/docs/reference/kubectl/
  2. https://jongsky.tistory.com/115
  3. https://btcd.tistory.com/105
  4. https://subicura.com/k8s/guide/kubectl.html
  5. https://blog.voidmainvoid.net/146
  6. https://cloudbim.tistory.com/35
  7. https://velog.io/@captain-yun/kubectl-%EC%9D%B4%EB%9E%80
  8. https://velog.io/@hanblueblue/kubernates-kubectl-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC
  9. https://maxima-lab.tistory.com/entry/Kubernetes-kubectl-create-apply-get-edit-scale
  10. https://everenew.tistory.com/383
  11. https://velog.io/@pinion7/kubernetes-CLI-%EB%8F%84%EA%B5%AC%EC%9D%B8-kubectl%EC%9D%98-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0
  12. https://velog.io/@pipi/k8s-kubectl-%EB%AA%85%EB%A0%B9%EC%96%B4-%EB%AA%A8%EC%9D%8C-dpltpkh7
  13. https://kubernetes.io/ko/docs/concepts/overview/
  14. https://blex.me/@Su-per/kubernetes-kubectl-%EA%B8%B0%EB%B3%B8-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC
  15. https://devops-note.tistory.com/18
  16. https://jibinary.tistory.com/136
  17. https://coding-start.tistory.com/308
  18. https://basketdeveloper.tistory.com/entry/kubectl-%EC%9E%90%EC%A3%BC-%EC%93%B0%EB%8A%94-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC
  19. https://co-de.tistory.com/184?category=884534

Perplexity로부터의 답변: pplx.ai/share

'클라우드 > K-PaaS' 카테고리의 다른 글

Redis  (0) 2025.04.14
registries.conf  (0) 2025.04.14
Podman  (0) 2025.04.14
Minikube  (0) 2025.04.14
K-Pass 실습환경  (1) 2025.04.14