728x90
쿠버네티스 (Kubernetes) 컨트롤러 (2)
DaemonSet
DaemonSet
- 전체 노드에서 Pod가 한 개씩 실행되도록 보장
- log 수집기, 모니터링 에이전트와 같은 프로그램 실행 시 적용
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: ds-nginx
spec:
selector:
matchLabels:
app: web
template:
metadata:
name: nginx-pod
labels:
app: web
spec:
containers:
- image: nginx:1.14
name: nginx
StatefulSet
StatefulSet
- Pod의 상태를 유지해주는 컨트롤러
- 애플리케이션의 상태를 저장하고 관리 ==> 각 Pod에 대한 고정 ID를 유지
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: sf-nginx
spec:
replicas: 3
serviceName: sf-svc
selector:
matchLabels:
app: web
template:
metadata:
name: nginx-pod
labels:
app: web
spec:
containers:
- image: nginx:1.14
name: nginx
Job
Job
- Pod를 Running 중인 상태로 유지
- Batch 처리에 적합한 컨트롤러로 Pod의 성공적인 완료를 보장
- Batch 처리하는 Pod는 작업이 완료되면 종료
- 작업이 완료되는 시점이 중요한 서비스에 유용함
Option
✔ Restart Policy
- OnFailure : 비정상 종료 시 원래 실행 중이던 노드에서 컨테이너 재시작
- Never : 비정상 종료 시 재 시작을 막은 후 새로운 Pod를 실행
✔ Parallel Jobs
- Completions: Job 오브젝트로 실행 할 Pod 수
- parallelism: Job에서 여러 개의 Pod를 동시 실행
✔ Active Deadline Second
- 지정된 시간 안에 Job 애플리케이션을 동작시키고 종료하려면 필드에 시간을 설정
apiVersion: batch/v1
kind: Job
metadata:
name: job-example
spec:
template:
spec:
containers:
- name: centos-container
image: centos:7
command: ["bash"]
args:
- "-c"
- "echo 'Hello World'; sleep 5; echo 'Bye'"
restartPolicy: Never
CronJob
CronJob
- Job 오브젝트에 Linx Cronjob의 스케줄링 기능을 추가
apiVersion: batch/v1
kind: CronJob
metadata:
name: cron-job-example
spec:
schedule: "* * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: centos-container
image: centos:7
command: ["bash"]
args:
- "-c"
- "echo 'Hello World'; sleep 5; echo 'Bye'"
restartPolicy: Never
반응형
'🐳 Container > K8S' 카테고리의 다른 글
[K8s] 쿠버네티스(Kubernetes) Ingress (0) | 2023.04.03 |
---|---|
[K8s] 쿠버네티스(Kubernetes) 서비스 (0) | 2023.03.30 |
[K8s] 쿠버네티스(Kubernetes) 컨트롤러 (1) (0) | 2023.03.27 |
[K8s] 쿠버네티스(Kubernetes) 레이블(Labels) (0) | 2023.03.27 |
[K8s] 쿠버네티스(Kubernetes) pod 관리 (0) | 2023.03.26 |