我在 GCE Kubernetes 上运行一个 wordpress / woocommerce 站点,并且由于会话持久性而无法扩展。
LoadBalancer (GCE Ingress) 将所有流量发送到反向代理,然后将流量发送到我设置的不同服务,其中之一是 wordpress。
如果我SessionAffinity: ClientIP
在 WordPress 服务上使用,所有流量都流向一个 pod,而其他流量将被忽略。这似乎是因为服务看到的是 LoadBalancer 的 IP 地址,而不是客户端的 IP 地址。尽管 externalTrafficPolicy: Local
在 nginx 反向代理和 wordpress NodePort 服务上都设置了这一点。
我还尝试使用 wordpress 服务作为默认后端,我设法让流量流向所有 pod,但失去了会话亲和性。
Ingress 还执行 TLS 终止,我已经看到这会影响 ClientIP 可见性,但我认为该问题已通过外部流量策略解决。
我们也在使用 Cloudflare,我想知道这是否会产生影响。但是我们正在使用 ngx_http_realip_module 来尝试获取正确的客户端 IP 地址。