pod如何知道它的副本数

How can a pod know its number of replicas

我正在开发一项服务(用 Go 编写),预计会收到大量请求。根据架构,服务的每个 pod 都应该服务于特定的客户端。比方说,如果此服务有 3 个 pods,拆分将类似于 -> A-HI-PQ-Z,其中每个字母都是客户姓名的第一个字母。

但是如果这个服务有4个pods,那么split可以是-> A-F, G-N, O-U, V-Z.

有什么方法可以让我在 Go 代码中知道还有多少其他副本?

PS:AFAIK,一种可能性是在 deployment.yaml 中有一个 environment variable。但是有一些方法可以在不改变 yaml.

的情况下完成缩放。

根据标题,解决方案是使用 StatefulSet,其中每个服务都知道彼此,并且可以以处理这种情况的方式编写应用程序。

然而,对于这个问题,根据提到的细节,一个不使用 StatefulSet 的好的解决方案是创建一个带有 sessionAffinity: ClientIPService。根据详细信息的要求是,后续请求必须转到为先前请求提供服务的特定 pod。这可以使用 sessionAffinity 字段进行配置。 Check documentation for it here With this, when a new client connects, service will select a pod after doing load-balancing. Post that, all subsequent requests will go to that pod only. This can be configured further using SessionAffinityConfig.