selector
과 template
을 지정해 template으로 각 node에 Pod을 생성하고 selector로 Pod의 label과 연결nodeSelector
로 배포할 node의 라벨을 지정해 선택 배포 가능hostPort
로 포트를 지정하여 각 Node의 포트가 배포된 Pod과 직접 연결되어 Service의 NodePort와 같이 사용할 수 있음apiVersion: apps/v1
kind: DaemonSet
metadata:
name: daemonset-1
spec:
selector:
matchLabels:
type: app
template:
metadata:
labels:
type: app
spec:
**nodeSelector:
os: centos**
containers:
- name: container
image: something
ports:
- containerPort: 8080
**hostPort: 18080**
completions
: 명시한 수 만큼 Pod를 만들어 순차적으로 실행한 후 모두 완료되면 Job을 종료 시킴parallelism
: 명시한 수 만큼 Pod가 생성되어 병렬적으로 실행activeDeadlineSeconds
: 명시한 시간만큼만 Pod들이 실행되고 이후에는 삭제됨apiVersion: batch/v1
kind: Job
metadata:
name: job-1
spec:
completions: 6
parallelism: 2
activeDeadlindSeconds: 30
template:
spec:
restartPolicy: Never # Never, OnFailure 중 설정
containers:
- name: container
image: something
주기적인 시간에 따라 Job을 생성
schedule
옵션의 주기에 따라 jobTemplate
에 해당하는 Job을 생성
옵션
concurrencyPolicy
suspend
true
일 때 Job 생성을 일시중지$ kubectl patch cronjobs cron-job -p '{"spec" : {"suspend" : true}}'
apiVersion: batch/ v1
kind: CronJob
metadata:
name: cron
spec:
schedule: "*/1 * * * *"
concurrencyPolicy: Allow
jobTemplate:
spec:
template:
spec:
restartPolicy: Never
containers:
- name: container
image: something