Core-Concepts/21/Pods

y001·2025년 2월 9일
post-thumbnail

Pod

  • Kubernetes에서 애플리케이션을 실행하는 가장 작은 배포 단위
  • Pod 내부에 컨테이너가 포함되며, 컨테이너는 실제 애플리케이션을 실행함
  • 동일한 Pod 내부 컨테이너들은 같은 네트워크 네임스페이스를 공유하므로 로컬 통신이 가능
  • 보통 Pod 1개당 1개의 애플리케이션 컨테이너를 포함
    • Pod 내부에 여러 개의 컨테이너가 포함될 수도 있음 - 일반적이지 않음

YAML을 이용한 Pod 생성

  • apiVersion: 사용할 Kubernetes API 버전
  • kind: 생성할 리소스 유형 (Pod, Deployment, Service 등)
  • metadata: 리소스의 이름, 레이블 등의 정보
  • spec: 리소스의 세부 설정 (예: Pod 내부 컨테이너 정보)
apiVersion: v1       # API 버전 (Pod을 생성할 때 v1 사용)
kind: Pod            # 생성할 리소스 종류 (Pod)
metadata:
  name: my-app-pod   # Pod의 이름
  labels:            # 레이블 (선택 사항, 리소스 분류에 사용)
    app: my-app
spec:
  containers:        # 컨테이너 목록 (Pod 내부에 실행할 컨테이너 정의)
    - name: my-app-container
      image: nginx   # 사용할 Docker 이미지

Pod 관리하기

✔ Pod 생성
kubectl apply -f pod.yaml: 선언형 방식으로 Pod을 생성
kubectl create -f pod.yaml: 명령형 방식으로 Pod을 생성
kubectl run my-app --image=nginx: YAML 없이 바로 Pod을 실행

✔ Pod 조회
kubectl get pods: 실행 중인 모든 Pod 목록 확인

✔ Pod 상세 정보 조회
kubectl describe pod my-app-pod: 특정 Pod의 상태, 컨테이너 정보, 이벤트 로그 확인

✔ Pod 삭제
kubectl delete pod my-app-pod: 특정 Pod 삭제

0개의 댓글