Kubernetes Pod 개요

Pod란?

  • 쿠버네티스에서 가장 작은 배포 단위
  • 하나 이상의 컨테이너로 구성
  • 컨테이너들은 shared network, storage, 실행 환경을 공유
  • 단일 인스턴스로 관리되며 함께 스케일링됨

Pod의 주요 특징

  • 단일 엔터티: 구성 요소 컨테이너들이 함께 생성, 스케일링, 배포됨
  • 공유 네트워크: 같은 Pod 내 컨테이너는 localhost를 통해 통신 가능
  • 공유 스토리지: 볼륨을 통해 데이터를 공유할 수 있음
  • 리소스 공유: CPU, 메모리 등의 리소스를 공유하여 효율적 사용 가능
  • 단일 라이프사이클: Pod 내 컨테이너는 함께 생성, 배포, 종료됨

Pod 생성 방법

  • 직접 Pod 생성: kubectl run 또는 YAML 파일 적용
  • 선언적 Pod 관리: Deployment, ReplicaSet 등의 컨트롤러를 통해 관리

Pod 관리 명령어

# Pod 목록 조회
kubectl get pods
kubectl get po -o wide

# Pod 상세 정보 확인
kubectl describe pod [pod-name]

# Pod 로그 확인
kubectl logs [pod-name]
kubectl logs -f [pod-name]  # 실시간 로그
kubectl logs --tail=100 [pod-name]  # 마지막 100줄

# Pod 내부 접속
kubectl exec -it [pod-name] -- /bin/bash

# Pod 생성
kubectl run nginx --image=nginx
kubectl run nginx --image=nginx --port=80

# Pod 삭제
kubectl delete pod [pod-name]
kubectl delete pod --all

Pod 설계 시 고려사항

  • 단일 책임 원칙 (Single Responsibility Principle)
  • 컨테이너 간 결합도 최소화
  • 상태 데이터는 볼륨 등을 통해 관리
  • 프로세스 간 통신은 환경 변수, 볼륨 등으로 처리
  • 리소스 사용량을 예측하고 제한 설정

'IT > kubernetes[k8s]' 카테고리의 다른 글

Kubernetes emptyDir 가이드  (1) 2024.11.16
Kubernetes PV와 PVC 개요  (0) 2024.11.16
쿠버네티스(Kubernetes)란?  (2) 2024.11.15
쿠버네티스 기본 명령어 모음  (0) 2024.11.15
Taints와 Tolerations  (1) 2024.11.15

+ Recent posts