Workload
Kubernetes Cluster에서 실행되는 애플리케이션
- 여러 개의 Pod 포함, 배포 방식, 업데이트, 확장성 등 관리하도록 다양한 리소스 유형을 제공
Pod
Kubernetes에서 가장 기본적인 실행 단위 = 하나 이상의 컨테이너
- Workload라고 불리기도 한다.
- 같은 Pod안의 컨테이너는 네트워크(IP), 스토리지(volume)을 공유
- 직접 사용되기 보다는 컨트롤러 (Deployment, StatefulSet 등)를 통해 관리됨
Deployment
무중단 배포(Rolling Update), 자동복구 (Self-healing) 지원 = 무상태 (Stateless) 애플리케이션 배포에 적합
- ReplicasSet을 자동으로 관리 -> 지정된 개수의 Pod 유지
- 업데이트 시, 새로운 Pod를 만들고 점진적으로 변경 (Rolling Update)
- Pod 장애 발생 시, 자동으로 새로운 Pod 생성
StatefulSet
상태 저장 (Stateful) 애플리케이션 배포에 적합
- 각 Pod에 고유한 네트워크 IP(호스트명)를 유지
- Pod 종료 후에도 데이터 유지
DaemonSet
모든 노드에서 1개의 Pod를 실행
- 노드가 추가되거나 삭제되면 자동으로 Pod 조정
- 특정 노드 그룹에서만 실행하도록 설정 가능
- ex) 로그 수집기 (Promtail..), 모니터링 에이전트 (Prometheus..)
Job
한 번 실행되고 종료됨
- 성공적으로 완료될 때까지 실행
- ex) data 마이그레이션, 배치, 백업 작업
CronJob
Job을 일정 주기로 실행
- ex) 정기적인 데이터 백업, 로그 정리, 일정한 시간마다 실행되는 작업