繁体   English   中英

Kubernetes Job:恰好一个荚

[英]Kubernetes Job: exactly one pod

我想一次只运行kubernetes应用程序的一个pod(以防万一失败重新启动),我正在使用job controller

但是根据文档,kubernetes可能会启动多个pod并最终实现指定的副本。 是否有任何方法可以一次完全实现一个吊舱,或者是否有针对此类用例的任何推荐设计模式。

我的应用程序正在从HDFS读取数据并将其写入消息队列。 处理完所有文件后退出。 我想将写入重复记录的可能性降至最低。

我建议您为此使用副本集。 将副本数量设置为1。更多信息, 请参见https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/#when-to-use-a-replicaset

原则上,在乔布斯没有暗含暗示的情况下,不应存在这种“竞争条件”(根据文档[1],“应为1”)。 仅当尝试失败时,才可以重新计划作业。 您是否遇到过同时执行同一任务的两个Pod的情况?

无论如何,如果您想完全确定,则可能需要实施额外的协调方法或外部解决方案。


[1] https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

如果我正确理解了您的问题,我认为您正在寻找:.spec.strategy.rollingUpdate.maxSurge

如果将其设置为0,则现有的Pod将在启动新Pod之前被杀死。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM