apiVersion: apps/v1 kind: DaemonSet metadata: name: nginx-daemon labels: app: nginx spec: selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.16.1 ports: - containerPort: 8990
kubectl create -f test.yaml
Job、Cron Job
Job 负责批处理任务,即仅执行一次的任务,它保证批处理任务的一个或多个 Pod 成功结束
CronJob Cron Job 管理基于时间的 Job,即:
在给定时间点只运行一次
周期性地在给定时间点运行
典型的用法如下所示:
在给定的时间点调度 Job 运行
创建周期性运行的 Job,例如:数据库备份、发送邮件
apiVersion: batch/v1
kind: Job
metadata:
name: command-job
spec:
template:
spec:
containers:
- name: command-job
image: busybox
command: ["/bin/sh","-c","sleep 5;echo 'job one'"]
restartPolicy: Never
特殊说明
spec.template格式同Pod
RestartPolicy仅支持Never或OnFailure
单个Pod时,默认Pod成功运行后Job即结束
.spec.completions 标志Job结束需要成功运行的Pod个数,默认为1 .spec.parallelism 标志并行运行的Pod的个数,默认为1 spec.activeDeadlineSeconds 标志失败Pod的重试最大时间,超过这个时间不会继续重试
Cron Job
apiVersion: batch/v1beta1 kind: CronJob metadata: name: hello spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: hello image: busybox args: - /bin/sh - -c - date; echo Hello from the Kubernetes cluster restartPolicy: OnFailure