클라우드

쿠버네티스(Kubernetes) 기본 명령어 정리

Newbie Developer 2025. 2. 13. 09:18

 

쿠버네티스(Kubernetes)는 컨테이너화된 애플리케이션을 자동화하여 배포, 확장 및 운영할 수 있도록 도와주는 오픈소스 플랫폼입니다. 쿠버네티스를 다룰 때 가장 기본적으로 사용되는 명령어는 kubectl이며, 이를 통해 클러스터를 관리하고 리소스를 조작할 수 있습니다.

이번 글에서는 kubectl을 활용한 주요 쿠버네티스 명령어를 정리해보겠습니다.


1. kubectl 기본 명령어

1.1 클러스터 정보 확인

쿠버네티스 클러스터 상태 및 정보를 확인하는 기본적인 명령어입니다.

# 클러스터 정보 확인
kubectl cluster-info

# 노드 정보 확인
kubectl get nodes

# 현재 사용자의 컨텍스트 확인
kubectl config current-context

# 사용 가능한 모든 컨텍스트 목록 확인
kubectl config get-contexts

2. 네임스페이스 관리

쿠버네티스에서는 여러 개의 네임스페이스를 사용하여 리소스를 격리할 수 있습니다.

# 현재 네임스페이스 확인
kubectl config view --minify | grep namespace

# 네임스페이스 목록 조회
kubectl get namespaces

# 새로운 네임스페이스 생성
kubectl create namespace my-namespace

# 특정 네임스페이스에서 실행
kubectl get pods -n my-namespace

3. 파드(Pod) 관리

쿠버네티스에서 가장 작은 배포 단위인 Pod를 관리하는 명령어입니다.

# 모든 네임스페이스에서 실행 중인 파드 조회
kubectl get pods --all-namespaces

# 특정 네임스페이스에서 파드 목록 조회
kubectl get pods -n my-namespace

# 파드 상세 정보 확인
kubectl describe pod my-pod

# 파드 로그 확인
kubectl logs my-pod

# 파드에서 실행 중인 컨테이너로 접근 (쉘 실행)
kubectl exec -it my-pod -- /bin/sh

# 새로운 파드 생성 (예: Nginx 파드)
kubectl run my-nginx --image=nginx --port=80

# 파드 삭제
kubectl delete pod my-pod

4. 디플로이먼트(Deployment) 관리

Deployment는 애플리케이션 배포 및 업데이트를 관리하는 쿠버네티스 리소스입니다.

# 모든 디플로이먼트 조회
kubectl get deployments

# 특정 디플로이먼트 상세 정보 확인
kubectl describe deployment my-deployment

# 새로운 디플로이먼트 생성 (예: Nginx 배포)
kubectl create deployment my-nginx --image=nginx

# 디플로이먼트 업데이트 (이미지 변경)
kubectl set image deployment/my-nginx nginx=nginx:latest

# 디플로이먼트 롤백
kubectl rollout undo deployment my-nginx

# 디플로이먼트 삭제
kubectl delete deployment my-nginx

5. 서비스(Service) 관리

쿠버네티스에서는 Service를 사용하여 파드를 네트워크로 노출하고, 내부 또는 외부에서 접근할 수 있도록 설정합니다.

# 서비스 목록 조회
kubectl get services

# 특정 서비스 정보 확인
kubectl describe service my-service

# 새로운 서비스 생성 (예: NodePort 방식)
kubectl expose deployment my-nginx --type=NodePort --port=80

# 서비스 삭제
kubectl delete service my-service

6. 컨피그맵(ConfigMap) 및 시크릿(Secret) 관리

애플리케이션 환경 변수 또는 민감한 데이터를 저장하고 관리하는 방법입니다.

# ConfigMap 생성
kubectl create configmap my-config --from-literal=key1=value1 --from-literal=key2=value2

# ConfigMap 조회
kubectl get configmap my-config -o yaml

# Secret 생성
kubectl create secret generic my-secret --from-literal=password=my-password

# Secret 조회
kubectl get secret my-secret -o yaml

7. 볼륨(Volume) 및 퍼시스턴트 볼륨(PersistentVolume) 관리

쿠버네티스에서는 영구적인 데이터 저장을 위해 PersistentVolume(PV)PersistentVolumeClaim(PVC)을 사용합니다.

# 모든 PersistentVolume 조회
kubectl get pv

# 모든 PersistentVolumeClaim 조회
kubectl get pvc

# PVC 삭제
kubectl delete pvc my-pvc

8. 쿠버네티스 리소스 YAML 적용 및 관리

쿠버네티스는 선언형 설정을 지원하며, YAML 파일을 사용하여 리소스를 관리할 수 있습니다.

# YAML 파일을 사용하여 리소스 생성
kubectl apply -f my-resource.yaml

# YAML 파일을 사용하여 리소스 삭제
kubectl delete -f my-resource.yaml

9. 문제 해결 및 디버깅

쿠버네티스 환경에서 발생하는 문제를 진단할 때 사용할 수 있는 명령어들입니다.

# 특정 파드의 이벤트 및 상태 확인
kubectl describe pod my-pod

# 모든 네임스페이스에서 이벤트 확인
kubectl get events --all-namespaces

# 특정 파드에서 실행 중인 컨테이너 접근하여 디버깅
kubectl exec -it my-pod -- /bin/sh

# 모든 리소스 조회 (디버깅 목적)
kubectl get all -A

마무리

이번 글에서는 쿠버네티스에서 가장 많이 사용되는 kubectl 기본 명령어들을 정리해보았습니다. 쿠버네티스를 처음 다룰 때는 kubectl get, kubectl describe, kubectl logs, kubectl apply 같은 명령어를 숙지하는 것이 중요합니다.

실제 운영 환경에서는 YAML 파일을 사용하여 리소스를 관리하는 것이 일반적이므로, 명령어와 함께 YAML 문법도 익혀두는 것이 좋습니다. 다음 글에서는 쿠버네티스의 보다 심화된 기능(예: Helm, Ingress, RBAC 등)에 대해 다뤄보겠습니다. 🚀