我需要偶尔执行一次临时工作。工作需要某种状态才能工作。建立国家需要很多时间。因此,需要在快速运行时间内保持状态的持久性和可重复使用性。我希望将这项工作作为K8s吊舱进行管理。
这是一整套要求:
我知道K8支持Jobs和Statefulsets。是否有同时支持两者的Controller?
答案 0 :(得分:2)
- 工作结束后豆荚会掉下来。 K8s控制器不应尝试 拿起豆荚。
这就是乔布斯所做的-完成任务。您只能控制是否要重试exit > 0
。
- Pod应该具有永久卷 他们。
同量?他们会写还是只读?您拥有什么卷后端,AWS EBS或类似产品?根据答案的不同,您可能希望将输入数据分割为几个卷,或者使用单独的卷进行写入,然后使用终结处理将其组装成1个卷(映射减少)。或者使用支持多装载RW https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes的卷后端(请参见ReadWriteMany
的表)
- 我们将来应该可以手动将吊舱重新安装。
适合工作:您可以在需要时启动它,直到运行完成。
- 未来的奔跑可能比过去的奔跑拥有更多或更少的副本。
工作适合这里。启动作业时,请指定其他completions
或parallelism
:https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#parallel-jobs
StatefulSet是不同的概念,它们主要用于群集软件,您可以连续运行这些软件,并且需要保留每个pod的角色(例如,分片)。