Ste*_*eve 2 google-compute-engine kubernetes kubernetes-ingress
我正在 GCE Kubernetes 上运行一个 wordpress / woocommerce 网站,但由于会话持久性而在扩展时遇到问题。
LoadBalancer(GCE Ingress)将所有流量发送到反向代理,然后反向代理将流量发送到我设置的不同服务,其中之一是 wordpress。
如果我SessionAffinity: ClientIP在 WordPress 服务上使用,所有流量都会流向一个 pod,而其他 pod 将被忽略。这似乎是因为服务看到的是 LoadBalancer 的 IP 地址而不是客户端的 IP 地址。尽管 externalTrafficPolicy: Local在 nginx 反向代理和 wordpress NodePort 服务上都进行了设置,但还是如此。
我还尝试使用 wordpress 服务作为默认后端,并设法让流量流向所有 pod,但失去了会话关联性。
Ingress 还执行 TLS 终止,我发现这会影响 ClientIP 可见性,但我认为该问题已通过外部流量策略解决。
我们也在使用 Cloudflare,我想知道这是否会产生影响。但我们正在使用 ngx_http_realip_module 来尝试获取正确的客户端 IP 地址。
我的集群中部署的 PHP 服务之一也遇到了类似的问题。会话是邪恶的:)但有时你确实需要使用它们。您可以通过多种方式在 PHP 中集群会话数据,这样您就不需要在负载均衡器上使用粘性会话。
您可以在这里找到简单的 mamcache 示例。如果您需要集群存储,您可以研究 Redis 集群,或者像我一样,研究 Couchbase
| 归档时间: |
|
| 查看次数: |
2046 次 |
| 最近记录: |