运行 个作业在 Kubernetes 中最多一次
Running jobs at most once in Kubernetes
在 kubernetes 文档中,https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
页面有以下注释
Note that even if you specify .spec.parallelism = 1 and
.spec.completions = 1 and .spec.template.spec.restartPolicy = "Never",
the same program may sometimes be started twice.
这可以避免吗?例如:我们能否确保作业最多只启动一次?
谢谢。
不,kubernetes 作业控制器机制不支持 at-most-once 或 exactly-once 语义。 at-most-once 和 exactly-once 必须防止出现各种竞争和失败情况。所有 kube 控制器所做的就是定期将它们检测到的集群状态与规范进行协调。
在 kubernetes 文档中,https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
页面有以下注释Note that even if you specify .spec.parallelism = 1 and .spec.completions = 1 and .spec.template.spec.restartPolicy = "Never", the same program may sometimes be started twice.
这可以避免吗?例如:我们能否确保作业最多只启动一次?
谢谢。
不,kubernetes 作业控制器机制不支持 at-most-once 或 exactly-once 语义。 at-most-once 和 exactly-once 必须防止出现各种竞争和失败情况。所有 kube 控制器所做的就是定期将它们检测到的集群状态与规范进行协调。