1. Pod
Kubernetes에서의 pod는 클러스터 내에서 애플리케이션을 실행하기 위한 가장 작은 배포 단위
- 파드는 하나 이상의 컨테이너를 포함하는 논리적 단위
- 내부의 컨테이너들은 같은 네트워크 공간(IP, localhost)과 스토리지 볼륨을 공유
- 파드는 클러스터 내에서 실행되며, 특정 노드에 스케줄링되어 배포
A. Pod 내 컨테이너
- 파드는 보통 하나의 주요 컨테이너와, 경우에 따라 보조 컨테이너(예: init container)를 함께 가질 수 있음
- 각 컨테이너는 서로 다른 포트를 사용해야 하며, 동일 파드 내에서는 포트가 중복되면 안 됨
- 파드 내부에서는 localhost를 통해 컨테이너 간 통신이 가능
- 파드 생성 시 클러스터 내에서 고유한 IP가 부여됨
- 해당 IP는 클러스터 외부에서는 접근 불가
- 파드가 삭제되거나 재시작되면 IP가 변경되므로, 직접 접근보다는 서비스(Service)를 통해 접근하는 방식이 일반적임
B. Label
- 레이블은 key:value 형식의 메타데이터로, 오브젝트를 식별하거나 그룹화할 때 사용됨
- 파드에 여러 개의 레이블을 설정할 수 있으며, 다른 리소스(Service 등)에서 선택 기준으로 활용
C. Node Schedule
파드는 클러스터 내의 노드 중 하나에만 배치됨
배치 방식은 다음 두 가지로 나뉜다.
1. nodeSelector로 사용자가 직접 지정
2. 스케줄러가 클러스터 상태를 기준으로 자동 배치
- 스케줄러는 노드들의 메모리 및 CPU 사용량 등을 고려하여 파드를 할당함
- 예시: Node1에 1Gi 여유, Node2에 3.7Gi 여유가 있을 경우 → 2Gi 요청한 파드는 Node2에 배치됨
D. 리소스 설정
컨테이너별로 리소스 요청(requests)과 제한(limits)을 설정할 수 있음
- requests: 스케줄러가 고려하는 최소 요구량
- limits: 실제 컨테이너가 사용할 수 있는 최대 리소스
resources:
requests:
memory: 2Gi
limits:
memory: 3Gi
1. 메모리 초과 시: OOMKill로 파드 종료됨
- 파일을 복사하는 중 또 다른 복사를 시도하면 메모리가 부족해 종료
2. CPU 초과 시: 컨테이너는 종료되지 않고 속도 제한(throttling) 발생
- 프로세스가 자원을 공유하며 느려질 뿐 계속 실행됨
'IT_Study > Ops' 카테고리의 다른 글
[Kubernetes] Object : Volume (2) | 2025.04.18 |
---|---|
[Kubernetes] Object : Service (0) | 2025.04.17 |
[Kubernetes] Kubernetes 구조 및 기능과 역할 (0) | 2025.04.15 |
[Kubernetes] 가상화 기술의 history 및 Virtual Machine과 Container의 차이 (0) | 2025.04.14 |
[DevOps] DevOps의 기본적 이해와 철학 (0) | 2023.12.24 |