kubernetes 会话关联行为

kubernetes session affinity behavior

我正在使用创建的 kubernetes 1.9.2 但 kubeadm。 这个 kubernetes 集群在 4 个 ec2 节点中 运行。

我有一个部署需要在每个 pod 中使用缓存。 为了实现我们使用 ClusterIP 的会话亲和性。

因为我是 Kubernetes 集群前面的 ELB,所以我想知道会话亲和力的表现如何。

自然的行为是,对于每个客户端 IP,不同的客户端会收到请求,但考虑到流量是通过 ELB 传输的,会话亲和性识别哪个 IP,ELB IP 还是实际客户端 IP?

当我检查 pods 的流量时,我看到 102 pods 收到了所有请求,而另外 2 个 pods 正在等待。

非常感谢您的帮助。

SessionAffinity识别客户端IP,ELB应该传递客户端IP。

我认为你应该使用 HTTP Headers and Classic Load Balancers 并设置 X-Forwarded-For: client-ip-address

此外,这似乎是一个已知问题 enabling Session affinity goes to a single pod only #3056

据报道 0.18.00.19.0 版本的 NGINX Ingress 控制器。

问题已关闭,并评论说已在版本 0.21.0 中修复,但在 12 月,初始作者表示它仍然对他不起作用。