본문 바로가기
DevOps

Kubernetes 실무에서 가장 많이 쓰는 kubectl 명령어 정리 (+실전 활용 팁)

by startaideveloper 2025. 4. 4.

Kubernetes(쿠버네티스)는 컨테이너화된 애플리케이션을 관리하는 강력한 오케스트레이션 도구입니다. 이를 효율적으로 활용하려면 kubectl 명령어를 익히는 것이 필수적입니다. 이번 글에서는 실무에서 자주 사용하는 kubectl 명령어와 활용 팁을 정리해보겠습니다.

1. kubectl 기본 개념

kubectl은 쿠버네티스 클러스터를 관리하는 CLI(Command Line Interface) 도구입니다. 이를 통해 클러스터의 리소스를 생성, 조회, 수정 및 삭제할 수 있습니다.

명령어 기본 구조는 다음과 같습니다.

kubectl [command] [type] [name] [flags]
  • command: 수행할 작업 (get, describe, apply 등)
  • type: 관리할 리소스 유형 (pods, services, deployments 등)
  • name: 리소스 이름 (생략 가능)
  • flags: 추가 옵션 (-n namespace, -o json 등)

2. 가장 많이 사용하는 kubectl 명령어

2.1. 클러스터 상태 확인

📌 모든 리소스 조회

kubectl get all

✅ 클러스터 내에서 실행 중인 모든 리소스(Pods, Services, Deployments 등)를 확인할 수 있습니다.

📌 특정 네임스페이스의 모든 리소스 조회

kubectl get all -n <namespace>

✅ 네임스페이스를 지정하여 해당 범위 내의 리소스만 확인할 수 있습니다.

📌 노드 상태 확인

kubectl get nodes

✅ 클러스터 내의 모든 노드를 확인하고, 노드의 상태(Ready, NotReady 등)를 확인할 수 있습니다.


2.2. 파드(Pod) 관리

📌 현재 실행 중인 모든 파드 조회

kubectl get pods

✅ 클러스터 내에서 실행 중인 모든 파드를 확인할 수 있습니다.

📌 특정 파드의 상세 정보 확인

kubectl describe pod <pod-name>

✅ 특정 파드의 이벤트 로그, 리소스 사용량, 컨테이너 상태 등을 확인할 수 있습니다.

📌 파드 로그 확인

kubectl logs <pod-name>

✅ 파드 내부에서 실행 중인 애플리케이션의 로그를 확인할 수 있습니다.

kubectl logs -f <pod-name>

✅ -f 옵션을 추가하면 실시간으로 로그를 모니터링할 수 있습니다.

📌 특정 컨테이너의 로그 확인 (멀티 컨테이너 파드)

kubectl logs <pod-name> -c <container-name>

✅ 하나의 파드에 여러 컨테이너가 있는 경우 특정 컨테이너의 로그만 확인할 수 있습니다.

📌 파드 내부에서 명령 실행

kubectl exec -it <pod-name> -- /bin/sh

✅ 파드 내부의 컨테이너에 접속하여 명령어를 실행할 수 있습니다. -- /bin/sh 대신 -- /bin/bash를 사용해도 됩니다.


2.3. 배포(Deployment) 관리

📌 현재 실행 중인 모든 배포 확인

kubectl get deployments

✅ 클러스터에서 실행 중인 모든 배포(Deployments) 정보를 확인할 수 있습니다.

📌 배포 스케일링 (레플리카 개수 조정)

kubectl scale deployment <deployment-name> --replicas=<number>

✅ 실행 중인 애플리케이션의 레플리카 개수를 조정하여 확장성을 조절할 수 있습니다.

📌 배포 업데이트

kubectl set image deployment/<deployment-name> <container-name>=<new-image>

✅ 실행 중인 애플리케이션의 이미지를 새로운 버전으로 업데이트할 수 있습니다.

📌 배포 롤백

kubectl rollout undo deployment <deployment-name>

✅ 문제가 발생했을 때, 이전 배포 버전으로 롤백할 수 있습니다.


2.4. 네트워크 및 서비스 관리

📌 현재 실행 중인 모든 서비스 조회

kubectl get services

✅ 클러스터 내에서 실행 중인 모든 서비스(Service)를 확인할 수 있습니다.

📌 특정 서비스의 상세 정보 확인

kubectl describe service <service-name>

✅ 특정 서비스의 포트, 엔드포인트 등을 확인할 수 있습니다.

📌 서비스 엔드포인트 확인

kubectl get endpoints

✅ 서비스가 트래픽을 전달하는 엔드포인트를 확인할 수 있습니다.

📌 포트 포워딩 (로컬에서 서비스 접근)

kubectl port-forward svc/<service-name> <local-port>:<service-port>

✅ 외부에서 접근할 수 없는 서비스라도 로컬에서 테스트할 수 있습니다.


3. 실전 활용 팁

✅ alias 설정으로 명령어 단축

매번 긴 명령어를 입력하는 것이 불편하다면 .bashrc 또는 .zshrc에 alias를 설정하세요.

echo 'alias k="kubectl"' >> ~/.bashrc
source ~/.bashrc

이제 kubectl get pods 대신 k get pods로 빠르게 실행할 수 있습니다.

✅ Auto-completion 활성화

source <(kubectl completion bash)

✅ 탭(tab) 키를 눌러 자동완성을 사용할 수 있습니다.


4. 결론

이번 글에서는 Kubernetes 실무에서 자주 사용하는 kubectl 명령어를 정리하고, 실제 운영 환경에서 활용할 수 있는 팁을 공유했습니다.

핵심 요약:

  • get, describe, logs, exec 등 필수 명령어 익히기
  • 배포(Deployment) 관리 및 롤백 전략 활용
  • 네트워크 관련 명령어로 서비스 및 포트 관리
  • alias 및 auto-completion 설정으로 생산성 향상

Kubernetes 환경에서 더 효율적으로 작업하려면 위 명령어를 적극 활용해 보세요! 🚀


출처