2025 07 18
2025-07-18¶
k8s Job¶
- 개요
- 하나 이상의 Pod를 지정하고, 지정된 수의 Pod를 성공적으로 실행하도록 하는 설정
- 백업/배치 등 한번 실행하고 종료되는 성격의 작업에 사용될 수 있음
-
예시
apiVersion: batch/v1 kind: Job metadata: name: pi spec: template: spec: containers: - name: pi image: perl command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"] restartPolicy: Never backoffLimit: 4restartPolicy: 재시작 유무 (Always, OnFailure, Never)backoffLimit: 잡에 실패할 경우 다시 실행시킬 재시도 횟수 지정
k8s pod에서 container를 지우면 (crictl rm -f CONTAINERID)?¶
- 개요
- Pod 수준에서도 Self-heal을 제공.
- Pod의 restartPolicy는 Always가 기본값
- 특징
- kubelet에 의한 자동 복구
- Pod와 그 내부 컨테이너의 상태를 주기적으로 점검
- kubelet은 원하는 상태로 맞추기 위해 즉시 동일한 컨테이너 생성
- 사용자의 상태 변경 무효
- ContainerId가 변경되며 신규 컨테이너로 대체, Pod는 Running
- 멀티 컨테이너 Pod의 경우
- Pod 내부에 여러 컨테이너 존재할 때, 해당 컨테이너만 재생성
- kubelet에 의한 자동 복구
k8s DaemonSet vs StaticPod¶
- DaemonSet
- 모든 노드에 똑같이 실행되어야 하는 에이전트
- 노드가 추가될 때마다 자동으로 Pod가 배포됨. 스케일/운영 편의성 높음
- API 서버를 통한 선언적 관리. 롤링 업데이트 등 강력한 관리 지원
- StaticPod
- API 서버나 컨트롤러가 정상적이지 않은 초기 클러스터 부트스트랩 단계의 필수 컴포넌트 운영에 쓰임
- kubelet이 직접 관리하며, API 서버 장애나도 Pod 기동
- 클러스터 기반 관리가 불필요하거나, 특정 노드 전용 시스템 서비스가 필수적일 때 사용