在运行时获取 StatefulSet 中 Pod 的数量

问题描述

有没有办法在运行时获取属于 StatefulSet 的 pod 中的副本计数? 我已验证以下答案 https://stackoverflow.com/a/54306021/5514015 在运行时为您提供了 pod 的主机名,其中包括 pod 序号,但我还想知道在 StatefulSet 中配置的副本数。这可以确定吗?

解决方法

遗憾的是,无法通过 Downward API 获得副本数量。但是在 StatefulSet 中,如您所说,通常需要这个数字。

建议获取号码的方法:

  • 在您的应用中实现这一点,以便他们进行协调,也许可以通过序数身份找到它。
  • 或者让您的应用与 Kubernetes API 服务器通信,例如使用client-go,但这会将您的应用程序与 Kubernetes 联系起来。

为了可靠性,您可能希望以某种方式设计您的应用程序,以便它可以在没有 Kubernetes 控制平面可用的情况下工作(至少在一段时间内),因此我建议在没有 Kubernetes API 的情况下实现这一点,例如上面的第一个解决方案。