我现在正在使用 GKE 和 kubernetes 以及 nginx 容器来代理不同的服务。我的目标是屏蔽一些国家。我习惯使用 nginx 来做这件事,它的 geoip 模块很有用,但到目前为止,kubernetes 不会将真实的客户 ip 转发到容器,所以我无法使用它。
在 kubernetes 实际转发真实 IP 之前,过滤掉国家/地区的最简单/最便宜的解决方案是什么?
- 对外服务?
- 仅使用 nginx、过滤国家、转发到 kubernetes 的简单 google 服务器(价格和可靠性方面不太好)?
- 修改 kube-proxy(正如我在这里和那里看到的,但似乎有点奇怪)?
- 前端 geoip 过滤(嗯,这是迄今为止最糟糕的想法)
- ?
谢谢你!
答案1
这个答案表示您可以通过 Ingress 对象使用 Google Cloud Platform 负载均衡器,然后在X-Forwarded-For
标头中找到客户端的 IP 地址。