Kubernetes的有状态工作

时间:2019-04-17 11:22:35

标签: kubernetes jobs stateful

我需要偶尔执行一次临时工作。工作需要某种状态才能工作。建立国家需要很多时间。因此,需要在快速运行时间内保持状态的持久性和可重复使用性。我希望将这项工作作为K8s吊舱进行管理。

这是一整套要求:

  1. 工作结束后豆荚会掉下来。 K8s控制器不应尝试抬起吊舱。
  2. 每个吊舱均应具有一个持久的卷。每个吊舱应有1册。我打算使用EBS。
  3. 我们将来应该可以手动将吊舱重新安装。
  4. 未来的奔跑可能比过去的奔跑拥有更多或更少的副本。

我知道K8支持Jobs和Statefulsets。是否有同时支持两者的Controller?

1 个答案:

答案 0 :(得分:2)

  
      
  1. 工作结束后豆荚会掉下来。 K8s控制器不应尝试   拿起豆荚。
  2.   

这就是乔布斯所做的-完成任务。您只能控制是否要重试exit > 0

  
      
  1. Pod应该具有永久卷   他们。
  2.   

同量?他们会写还是只读?您拥有什么卷后端,AWS EBS或类似产品?根据答案的不同,您可能希望将输入数据分割为几个卷,或者使用单独的卷进行写入,然后使用终结处理将其组装成1个卷(映射减少)。或者使用支持多装载RW https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes的卷后端(请参见ReadWriteMany的表)

  
      
  1. 我们将来应该可以手动将吊舱重新安装。
  2.   

适合工作:您可以在需要时启动它,直到运行完成。

  
      
  1. 未来的奔跑可能比过去的奔跑拥有更多或更少的副本。
  2.   

工作适合这里。启动作业时,请指定其他completionsparallelismhttps://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#parallel-jobs

StatefulSet是不同的概念,它们主要用于群集软件,您可以连续运行这些软件,并且需要保留每个pod的角色(例如,分片)。