天津建设网站官网,微信公司网站,WordPress主题启用出现错误,wordpress去除tagJob#xff0c;主要用于负责批量处理(一次要处理指定数量任务)短暂的一次性(每个任务仅运行一次就结束)任务。 一次性任务#xff1a;Job 用于运行那些只需要执行一次的任务#xff0c;如数据分析、图像渲染或批量处理。 成功终止#xff1a;Job 会跟踪其创建的 Pod 的成功…Job主要用于负责批量处理(一次要处理指定数量任务)短暂的一次性(每个任务仅运行一次就结束)任务。 一次性任务Job 用于运行那些只需要执行一次的任务如数据分析、图像渲染或批量处理。 成功终止Job 会跟踪其创建的 Pod 的成功完成成功退出退出状态为 0的数量。 指定完成数量Job 有一个目标完成数量当成功结束的 Pod 数量达到这个指定的数量时Job 就会完成。 并行处理Job 可以配置并行性即同时运行多个 Pod 来加速处理过程。Kubernetes 会尝试以最大并行数启动 Pod直到达到所需的成功完成 Pod 的数量。 重启策略Job 的重启策略通常设置为 OnFailure这意味着如果 Pod 失败非零退出状态它将被重启。 自动清理一旦 Job 完成即成功结束的 Pod 数量达到指定的目标Kubernetes 将自动清理与该 Job 相关的所有资源。 回退机制如果 Pod 由于某种原因如节点故障未能成功完成Job 可以配置以重新创建并启动新的 Pod 来替换失败的 Pod。 监控和日志Job 可以与 Kubernetes 的日志和监控系统集成以便于跟踪作业的执行状态和历史。
Job的资源清单文件
---
apiVersion: batch/v1 # 版本号
kind: Job # 类型
metadata: # 元数据name: # rs名称namespace: # 所属命名空间labels: # 标签controller: job
spec: # 详情描述completions: 1 # 指定job需要成功运行Pods的次数。默认值: 1parallelism: 1 # 指定job在任一时刻应该并发运行Pods的数量。默认值: 1activeDeadlineSeconds: 30 # 指定job可运行的时间期限超过时间还未结束系统将会尝试进行终止。backoffLimit: 6 # 指定job失败后进行重试的次数。默认是6manualSelector: true # 是否可以使用selector选择器选择pod默认是falseselector: # 选择器通过它指定该控制器管理哪些podmatchLabels: # Labels匹配规则app: counter-podmatchExpressions: # Expressions匹配规则- key: appoperator: Invalues: [counter-pod]template: # 模板当副本数量不足时会根据下面的模板创建pod副本metadata:labels:app: counter-podspec:restartPolicy: Never # 重启策略只能设置为Never或者OnFailurecontainers:- name: counterimage: busybox:1.30command: [bin/sh,-c,for i in 9 8 7 6 5 4 3 2 1; do echo $i;sleep 2;done] 在 Kubernetes 中Job 控制器的重启策略与 Pod 的重启策略是不同的。Job 本身并不控制容器的重启而是控制着生成新 Pod 的行为。以下是 Job 控制器与重启策略相关的正确说明 OnFailure这是 Job 的默认重启策略。当 Pod 由于容器故障而失败时比如退出状态非零Job 会认为这是一个失败失败次数会增加并且 Job 会创建一个新的 Pod 来替换失败的 Pod。这意味着任务会重试直到成功完成。 Never如果将重启策略设置为 Never当 Pod 失败时Job 不会创建新的 Pod 来替换它失败的 Pod 将保留在系统中并且失败次数会增加。这种策略通常用于调试以便可以检查失败的 Pod 的状态和日志。 Always这个选项对于 Pod 的重启策略是有意义的但对于 Job 控制器来说并不适用。Job 控制器不负责重启容器它负责的是生成新的 Pod。如果 Pod 的重启策略设置为 Always无论何时容器退出Kubernetes 都会重启该容器而与 Job 控制器无关。
创建Job控制器
^C[rootk8s-master ~]# cat pc-job.yaml
---
apiVersion: batch/v1
kind: Job
metadata:name: pc-jobnamespace: test
spec:manualSelector: trueselector:matchLabels:app: counter-pod # 确保这个与 template 中的 labels 匹配template:metadata:labels:app: counter-pod # 这里的 labels 需要与 selector 的 matchLabels 对应spec:restartPolicy: Nevercontainers:- name: counterimage: busybox:1.30command: [/bin/sh, -c, for i in 9 8 7 6 5 4 3 2 1; do echo $i; sleep 3; done]
[rootk8s-master ~]# 查看job
[rootk8s-master ~]# kubectl get job -n test -o wide -w
NAME COMPLETIONS DURATION AGE CONTAINERS IMAGES SELECTOR
pc-job 0/1 2s 2s counter busybox:1.30 appcounter-pod
pc-job 1/1 43s 43s counter busybox:1.30 appcounter-pod查看pod
可以看的pod在启动成功之后就变为completed状态
[rootk8s-master ~]# kubectl get pods -n test -w
NAME READY STATUS RESTARTS AGE
pc-daemonset-9vwvd 1/1 Running 0 24m
pc-daemonset-drdt5 1/1 Running 0 24m
pc-job-dhgqw 1/1 Running 0 41s
pc-job-dhgqw 0/1 Completed 0 43s
pc-job-dhgqw 0/1 Completed 0 43s