Kubernetes Pod 控制器 Job
Kubernetes About 2,448 words概念
主要用于负责批量处理(一次要处理指定数量任务)**短暂的一次性(每个任务仅运行一次就结束)**任务。
特点
- 当
Job
创建的Pod
执行成功结束时,Job
将记录成功结束的Pod
数量 - 当成功结束的
Pod
达到指定的数量时,Job
将完成执行
查看帮助
kubectl explain job
完整配置
apiVersion: batch/v1 # 版本号
kind: Job # 类型
metadata: # 元数据
name: # job 名称
namespace: # 所属命名空间
labels: #标签
controller: job
spec: # 详情描述
completions: 1 # 指定 job 需要成功运行 Pod 的次数。默认值: 1
parallelism: 1 # 指定 job 在任一时刻应该并发运行 Pod 的数量。默认值: 1
activeDeadlineSeconds: 30 # 指定 job 可运行的时间期限,超过时间还未结束,系统将会尝试进行终止。
backoffLimit: 6 # 指定 job 失败后进行重试的次数。默认是 6
manualSelector: true # 是否可以使用 selector 选择器选择 Pod,默认是 false
selector: # 选择器,通过它指定该控制器管理哪些 Pod
matchLabels: # Labels 匹配规则
app: counter-pod
matchExpressions: # Expressions 匹配规则
- {key: app, operator: In, values: [counter-pod]}
template: # 模板,当副本数量不足时,会根据下面的模板创建 Pod
metadata:
labels:
app: counter-pod
spec:
restartPolicy: Never # 重启策略只能设置为 Never 或者 OnFailure
containers:
- name: counter
image: busybox:1.30
command: ["bin/sh","-c","for i in 9 8 7 6 5 4 3 2 1; do echo $i;sleep 2;done"]
关于重启策略设置的说明:
- 如果指定为
OnFailure
,则job
会在Pod
出现故障时重启容器,而不是创建Pod
,failed
次数不变。 - 如果指定为
Never
,则job
会在Pod
出现故障时创建新的Pod
,并且故障Pod
不会消失,也不会重启,failed
次数加1
- 如果指定为
Always
的话,就意味着一直重启,意味着job
任务会重复去执行了,当然不对,所以不能设置为Always
示例 yml
apiVersion: batch/v1
kind: Job
metadata:
name: pc-job
namespace: dev
spec:
manualSelector: true
selector:
matchLabels:
app: counter-pod
template:
metadata:
labels:
app: counter-pod
spec:
restartPolicy: Never
containers:
- name: counter
image: busybox:1.30
command: ["bin/sh","-c","for i in 9 8 7 6 5 4 3 2 1; do echo $i;sleep 3;done"]
查看 Job
kubectl get job -n dev -o wide -w
输出:
[root@localhost ~]# kubectl get job -n dev -o wide -w
NAME COMPLETIONS DURATION AGE CONTAINERS IMAGES SELECTOR
pc-job 0/1 15s 15s counter busybox:1.30 app=counter-pod
pc-job 0/1 41s 41s counter busybox:1.30 app=counter-pod
pc-job 1/1 41s 42s counter busybox:1.30 app=counter-pod
查看 Pod
需开两个SSH
窗口,否则kubectl get job
查看job
的指令会阻塞。
kubectl get pods -n dev -w
输出:
[root@localhost ~]# kubectl get pods -n dev -w
NAME READY STATUS RESTARTS AGE
pc-job-5bn8b 1/1 Running 0 20s
pc-job-5bn8b 0/1 Completed 0 41s
删除 Job
kubectl delete -f pc-job.yml
Views: 1,248 · Posted: 2022-03-13
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...