首页 文章

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

提问于
浏览
1

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

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

根据另一个SO问题的建议 - 我暂时放错了链接 - 我想在VM实例上部署 nginx ,它可以访问连接客户端的IP,然后将请求从该实例转发到集群 .

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

或者,如果您确实可以确定Google负载均衡器背后的外部IP地址,那么我更愿意这样做 . 我记得读过很长时间的k8s GitHub问题,显示那还有一段路要走 .

1 回答

  • 2

    您正在寻找的是 http proxy protocol

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

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

相关问题