Parallel processing 库伯内特斯的任务:正好一个吊舱

Parallel processing 库伯内特斯的任务:正好一个吊舱,parallel-processing,kubernetes,Parallel Processing,Kubernetes,我想一次只运行我的kubernetes应用程序的一个pod(失败时重新启动),我正在使用 但根据文献记载,库伯内特斯可能会发射多个吊舱,并最终获得指定的复制品。是否有任何方法可以一次只实现一个pod,或者有任何针对此类用例的推荐设计模式 我的应用程序正在从HDFS读取数据并将其写入消息队列。它在处理所有文件后退出。我希望尽量减少写入重复记录的可能性。我建议您为此使用ReplicaSet。将复制副本的数量设置为1。更多信息原则上,对于没有隐含平行性的工作,不应该存在这种“竞争条件”(“根据文献[1

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

但根据文献记载,库伯内特斯可能会发射多个吊舱,并最终获得指定的复制品。是否有任何方法可以一次只实现一个pod,或者有任何针对此类用例的推荐设计模式


我的应用程序正在从HDFS读取数据并将其写入消息队列。它在处理所有文件后退出。我希望尽量减少写入重复记录的可能性。

我建议您为此使用ReplicaSet。将复制副本的数量设置为1。更多信息

原则上,对于没有隐含平行性的工作,不应该存在这种“竞争条件”(“根据文献[1])。只有在尝试失败时,才会重新安排作业。您是否遇到过来自同一作业的两个吊舱同时被执行的情况

在任何情况下,如果您想完全确定,您可能需要实现额外的协调方法或外部解决方案



[1]

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


如果将此设置为0,则在启动新的POD之前,现有的POD将被删除。

谢谢,但据我所知,replicaset也存在同样的问题。Kubernetes可以启动多个指定副本。另外,我不认为replicaset是运行到完成用例的推荐控制器。你的意思是你希望POD在完成时终止吗?这是一篇有趣的文章。跳转到Thank Mayur上处理吊舱和集装箱故障。“即使指定.spec.parallelism=1和.spec.completions=1以及.spec.template.spec.restartPolicy=“从不”,同一程序有时可能会启动两次”,因此不能保证只启动一个实例。我相信一定有一些推荐的设计模式来处理这样的场景Hanks Javier在文档中写道:“即使您指定.spec.parallelism=1和.spec.completions=1以及.spec.template.spec.restartPolicy=“Never”,同一个程序有时可能会启动两次”,因此没有保证。我相信一定有一些推荐的设计模式来处理这种情况。谢谢米洛,我不需要滚动更新。基本上,我想使用外部调度程序每小时启动kubernetes应用程序(运行到完成)。我不想一次运行超过1个pod以避免重复记录处理。所以,我的问题是如何实现一次语义。我认为maxSurge设置不仅仅用于更新。也许值得一查。。。但如何:)