我想从 pod 内部访问副本的数量以及给定 pod 的当前副本 id。例如,如果任何给定 pod 有 3 个副本,例如 foo_A、foo_B 和 foo_C,按特定顺序创建,是否可以在 pod 中提供副本集中的副本总数和 pod 索引?
我也明白,随着旧的 pod 被杀死而新的 pod 出现,副本集中的 pod 索引可以动态变化。
我知道这可以使用 Downward API 来实现,但是要访问哪些字段?有人可以帮忙吗?
我想从 pod 内部访问副本的数量以及给定 pod 的当前副本 id。例如,如果任何给定 pod 有 3 个副本,例如 foo_A、foo_B 和 foo_C,按特定顺序创建,是否可以在 pod 中提供副本集中的副本总数和 pod 索引?
我也明白,随着旧的 pod 被杀死而新的 pod 出现,副本集中的 pod 索引可以动态变化。
我知道这可以使用 Downward API 来实现,但是要访问哪些字段?有人可以帮忙吗?
如评论中所述,您可以使用StatefulSets:
StatefulSet Pod 具有唯一的身份,由序数、稳定的网络身份和稳定的存储组成。身份坚持到 Pod,无论它(重新)调度在哪个节点上。
正如您在此处看到的,您的 pod 将按顺序创建:
- 对于有 N 个副本的 StatefulSet,在部署 Pod 时,它们是按顺序创建的,从 {0..N-1} 开始。当 Pod 被删除时,它们会以相反的顺序从 {N-1..0} 终止。
- 在将扩展操作应用于 Pod 之前,它的所有前任都必须处于 Running 和 Ready 状态。
- 在终止 Pod 之前,必须完全关闭其所有后继者。