Kubernetes 如何制作容错数据处理k8s吊舱?

Kubernetes 如何制作容错数据处理k8s吊舱?,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,我们在GKE上有一个图像处理管道,它是来自GCP主题的提要,而GCP主题又是由bucket通知(即 image upload > bucket > notification > topic < pods consume files off topic. image upload>bucket>notification>topic

我们在GKE上有一个图像处理管道,它是来自GCP主题的提要,而GCP主题又是由bucket通知(即

image upload > bucket > notification > topic < pods consume files off topic.
image upload>bucket>notification>topic
这可以很好地扩展,但有时豆荚会死亡或缩小规模,并伴随着他们使用的主题中的数据。是否有容器设计模式来确保即使pod意外死亡也能处理文件


(在处理数以百万计的图像文件时,整理遗漏的内容简直是一场噩梦)。

是的,我经过了很长时间的思考,提出了一个2队列解决方案,我将称之为“会计吊舱/容器”(因为这个想法基于复式簿记):

  • 作业将发布到两个队列,第一季度和第二季度
  • 工人处理Q1弹出项目,直到其为空
  • 当Q1为空时,会计pod通过Q2检查每个作业的预期输出。如果有什么东西丢失了,请在第1季度和第2季度再次投入(第2季度耗尽后)
  • 重复此操作,直到会计师不将任何内容发回队列 我称之为:复式记账/会计设计模式:)

    我认为这可以应用于大多数数据处理队列系统

    我所看到的唯一缺陷是会计师去世(但检查输入与输出应该是一项轻量级的工作)。我猜你可以有N个队列,其中有N-1个会计师,这取决于你想有多确定(但协调多个会计师可能很棘手)