Pod
Pod Overview

Pod과 Container

- Pod(파드)는 하나의 독립적인 서비스를 구동 시키는 Container들을 포함한다.
- 하나의 Container는 여러 개의 포트를 가질 수 있지만, 한 Pod 내 다른 Container와 중복되는 포트를 사용할 수는 없다. 즉 로컬호스트 환경으로 묶여있다.
- Pod의 IP는 생성 시 자동으로 할당되고, 재생성 시 변경되며 외부에서는 접근할 수 없다. (휘발성)
Pod과 Label

- Label(라벨)은 모든 오브젝트에 사용할 수 있지만, 주로 Pod에서 가장 많이 사용된다.
목적에 따라 오브젝트들을 분류하기 위해 사용한다. → 예) 검색, 오브젝트 간 연결 - 키:값 형태로 구성되고, 한 Pod에 여러 개의 라벨을 등록할 수 있다.
Pod과 Node Schedule

- Pod는 특정 워커 Node 위에서 동작하게 된다. 어디 Node 에서 동작할지 직접 선택, Scheduler 로 구분할 수 있다.
- 직접 선택 : Pod 선언 시 nodeSelector 항목에 동작할 Node를 지정한다.
- Scheduler : 쿠버네티스의 Scheduler가 각 노드의 리소스 상황과 Pod에 선언된 최소 필요 리소스 양(request 항목), 제한할 리소스 양(limits 항목)을 고려해 적절히 스케줄링한다.
Scheduler의 CPU와 Memory 리소스 초과 시 동작 방식이 상이하다.
- CPU : 초과 시 request를 낮춰 CPU 사용률을 제어하고, 초과되더라도 Pod를 종료 시키지 않는다.
- Memory : 초과 시 Pod를 종료 시킨다.
그 이유는 CPU와 Memory의 문제 발생 시 사이드 이펙트가 다르기 때문이다.
- CPU는 프로세스 처리속도 지연의 문제가 발생하지만,
- Memory는 다른 프로세스의 메모리 영역을 침범하면서 두 프로세스 모두 죽기 때문이다.
그게 만약 중요한 서비스의 프로세스였다면 치명적인 이슈로 이어질 수 있다.
Reference : https://inf.run/yW34
'Tech > [Container] Kubernetes' 카테고리의 다른 글
쿠버네티스 기본 오브젝트 - Volume (0) | 2025.04.14 |
---|---|
쿠버네티스 기본 오브젝트 - Service (0) | 2025.04.14 |
쿠버네티스 기초 다지기 (0) | 2025.04.06 |
M4 Pro에서 UTM 설치부터 바닐라 k8s 클러스터(v1.32.1) 구축까지 (0) | 2025.03.28 |