-
[K8s] 컨트롤러 - DaemonSet, Job, CronJob도커 | 쿠버네티스 2023. 1. 24. 13:17
DaemonSet
모든 노드에 특정 파드를 최소 실행 되어야 할 개수 설정 및 생성을 한다.
Deployment와 같이 롤링 업데이트와 롤백이 가능하다.
예시
apiVersion: apps/v1 kind: DaemonSet metadata: name: DSnginx annotations: kubernetes.io/change-cause: version 1.16 spec: selector: matchLabels: app: web # matchExpressions: #- {key: version, operator: In, values: ["1.14","1.15"]} template: metadata: name: nginx-pod labels: app: web # version: "1.14" spec: containers: - name: nginx-container image: nginx:1.16
yaml 작성 시 참고사항
spec > template > spec > nodeSelector : 파드가 생성될 노드를 특정하는 설정Job
배치처리를 할 때 사용한다.
자동적으로 재시작되는 것을 제어한다.
재시작 제어 옵션 - restartPolicy
- OnFailure : 비정상 종료 시 원래 실행 중이던 노드에서 컨테이너 재시작
- Never : 비정상 종료 시 재시작을 막은 후 새로운 파드를 실행
예시
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
yaml 작성 시 참고사항
spec > completions : 하나의 Job에서 생성할 파드의 개수를 설정
spec > parallelism : Job이 실행될 때 한 번에 생성할 파드의 개수를 설정
spec > activeDeadlineSeconds : Job의 실행을 정지하는 제한 시간을 설정
spec > ttlSecondsAfterFinished : Job 종료된 뒤 설정값(초) 후 삭제CronJob
Job에 linux cronjob의 스케줄링 기능을 추가
CronJob 스케줄링 구조 ex) "* * * * *"
각 *에 들어가는 수는 각각 분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-7)을 의미한다.
참고 사이트
https://crontab.guru/예시
apiVersion: batch/v1 # CronJob kind: CronJob metadata: name: hello spec: schedule: "* * * * *" # 매분마다 jobTemplate: spec: template: # Job spec: containers: - name: hello image: busybox:1.28 imagePullPolicy: IfNotPresent command: - /bin/sh - -c - date; echo Hello from the Kubernetes cluster restartPolicy: OnFailure
yaml 작성 시 참고사항
concurrencyPolicy
1. Allow : 주기마다 실행되는 Job은 서로 유별하게 작동, 기본값
2. Forbid : Job을 실행해야 할 때 이전 주기에 실행된 Job이 아직 완료되지 않았을 경우 생략
3. Replace : Job을 실행해야 할 때 이전 주기에 실행된 Job이 아직 완료되지 않았을 경우 이전 Job 삭제, 새 Job 실행'도커 | 쿠버네티스' 카테고리의 다른 글
[K8s] StatefulSet, Ingress, Autoscaler (0) 2023.02.23 [K8s] 컨트롤러 - Replication Controller, ReplicaSet, Deployment (0) 2023.01.24 Docker image build & Dockerfile (0) 2022.10.29