我的 Web 应用程序作为 Kubernetes pod 在 SSL 的 nginx 反向代理后面运行。代理和我的应用程序都使用 Kubernetes 服务进行负载平衡(如所述here http://blog.kubernetes.io/2015/07/strong-simple-ssl-for-kubernetes.html).
问题是我的所有 HTTP 请求日志仅显示内部集群 IP 地址,而不是实际 HTTP 客户端的地址。有没有办法让 Kubernetes 服务将此信息传递到我的应用程序服务器?
从 1.5 开始,如果您在 GCE(通过扩展 GKE)或 AWS 中运行,您只需向服务添加注释即可使 HTTP 源保存工作。
...
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/external-traffic: OnlyLocal
...
它基本上通过节点端口直接公开服务,而不是提供代理——通过在每个节点上公开运行状况探测器,负载均衡器可以确定将流量路由到哪些节点。
在1.7中,此配置已成为GA,因此您可以设置"externalTrafficPolicy": "Local"
在您的服务规范上。
点击这里了解更多 https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)