如何将 deployment 或 statefulset 的规模暴露给其中的 pods?

How to expose the scale of a deployment or statefulset to the pods in it?

我的第一个想法是使用 downward API,但这似乎并没有暴露部署/statefulset 的规模。我希望能够避免手动将其添加为单独的环境变量,或者不得不依赖 pods 所有人相互发现以确定规模(如果可能)。

用例:为连接到外部服务的应用程序部署许多 pods。所述服务执行某种形式的一致性哈希(我认为这是正确的术语?)以将数据发送给客户端,因此连接的客户端发送一个从 0 - N-1 的 ID 号和客户端总数 N。在这种情况下, deployment/statefulset 比例为 N.

你肯定必须为此使用 StatefulSet,我认为你不能从 DownwardAPI 中提取它,因为副本计数不是 pod 规范的一部分(它是statefulset 规范)。您可以获取父对象名称,然后设置一个服务帐户以便能够查询 API 以获取副本计数,但这似乎比将值放入标签或环境变量中更有效。