Kubernetes 库伯内特斯的有状态工作

Kubernetes 库伯内特斯的有状态工作,kubernetes,jobs,stateful,Kubernetes,Jobs,Stateful,我需要偶尔执行一次临时任务。这项工作需要一些状态才能起作用。建立一个国家需要很多时间。因此,希望在后续运行中保持状态的持久性和可重用性,以实现快速周转。我希望此作业作为K8s吊舱进行管理 这是一套完整的要求: 工作结束后,吊舱将下降。K8s控制器不应试图启动吊舱 每个pod都应该连接一个持久卷。每个吊舱应有1个容量。我计划使用EBS 我们应该能够在将来手动将吊舱恢复 将来的运行可能比以前的运行有更多或更少的副本 我知道K8s支持作业和状态集。是否有同时支持两者的控制器 工作结束后,吊舱将下降。K

我需要偶尔执行一次临时任务。这项工作需要一些状态才能起作用。建立一个国家需要很多时间。因此,希望在后续运行中保持状态的持久性和可重用性,以实现快速周转。我希望此作业作为K8s吊舱进行管理

这是一套完整的要求:

  • 工作结束后,吊舱将下降。K8s控制器不应试图启动吊舱
  • 每个pod都应该连接一个持久卷。每个吊舱应有1个容量。我计划使用EBS
  • 我们应该能够在将来手动将吊舱恢复
  • 将来的运行可能比以前的运行有更多或更少的副本
  • 我知道K8s支持作业和状态集。是否有同时支持两者的控制器

  • 工作结束后,吊舱将下降。K8s控制器不应尝试 把豆荚带上来 这就是作业所做的-运行到完成。您只能控制是否要在退出0时重试

  • POD应该有一个永久卷连接到 他们 对所有人都一样吗?他们会写还是只读?您有什么卷后端,AWS EBS或类似产品?根据答案的不同,您可能希望在几个卷之间拆分输入数据,或者使用单独的卷进行写入,然后完成作业,以在一个卷中进行组装(类似于map reduce)。或者使用支持多装载RW的卷后端(请参阅表了解
    ReadWriteMany

  • 我们应该能够在将来手动将吊舱恢复
  • 作业适合这里:你需要时启动它,它一直运行到完成

  • 将来的运行可能比以前的运行有更多或更少的副本
  • 工作适合这里。启动作业时,指定不同的
    完成
    并行度


    statefulset是不同的概念,它们主要用于连续运行的集群软件,并且需要每个pod(例如,shard)保留角色

    嗨@max lobur,每个pod都应该有自己的持久卷。就像有状态的豆荚一样。我计划使用EBS。我明白你为什么现在看StatefolSet了。然后,它使用带有附加选择器的PersistentVolumeClaim和
    PersistentVolumeClaimPolicy
    Retain。这样,您只需在作业中重用同一组卷。