从Pod中访问副本集信息

问题描述

我想从Pod本身内部访问给定Pod的副本数以及当前副本ID。 例如,如果给定Pod有3个副本,例如以该特定顺序创建的foo_A,foo_B和foo_C,是否可以将副本中的Pod总数和Pod索引设置为在Pod中可用?

我还了解到,随着旧Pod的被杀死和新Pod的出现,副本集中的Pod索引会动态变化。

我知道可以使用Downward API来实现,但是要访问哪些字段? 谁能帮忙吗?

解决方法

如评论中所述,您可以使用StatefulSets

StatefulSet Pod具有由序号,稳定的网络身份和稳定的存储组成的唯一身份。身份坚持在Pod上,而不管它在(重新)安排在哪个节点上。

如您所见here,您的广告连播将按顺序创建:

  • 对于具有N个副本的StatefulSet,在部署Pod时,将按从{0..N-1}开始的顺序顺序创建它们。 删除Pod时,它们以相反的顺序从{N-1..0}终止。
  • 在对Pod进行缩放操作之前,其所有前身必须处于“运行且就绪”状态。
  • 在终止Pod之前,所有后继者必须完全关闭。