GCP:Kubernetes集群前面的VM上的反向代理

时间:2017-10-31 14:51:12

标签: kubernetes gcp

我们运行一个Kubernetes集群,托管数据库,各种微服务和nginx反向代理,所有这些都在容器中。我们有一个Google load balancer和一个转发到反向代理的转发规则,并从那里请求代理到相应的微服务。

这很好用,但反向代理永远不会显示连接到它的客户端的IP地址。 (尽管this documentation表示可以通过HTTP标头获取此信息,但我们没有运气,只能看到我们的GCP default网络上的IP。)

在另一个SO问题中提出建议 - 我暂时放错了其链接 - 我希望在VM实例上部署nginx,而 可以访问连接客户端IP,然后将该实例的请求转发到集群中。

我的问题是:每个微服务器都在TCP端口上侦听并配置了k8s Service。如何在我的Service VM中引用这些k8 nginx?我可以通过DNS或入口控制器来完成吗?

或者,如果 实际上确定了Google负载均衡器背后的外部IP地址,我宁愿这样做。我记得读过很长时间的k8s GitHub问题,显示它还有一段路要走。

1 个答案:

答案 0 :(得分:2)

您要找的是http proxy protocol

https://www.nginx.com/resources/admin-guide/proxy-protocol/

请注意,谷歌负载均衡器和您的nginx必须配置为同时使用代理协议。 如果其中一个使用代理协议,而另一个没有使用,则什么都不起作用。