gpt4 book ai didi

google-compute-engine - 从 Google Compute Engine 网络负载均衡器后面访问外部客户端 IP

转载 作者:行者123 更新时间:2023-12-02 19:48:25 39 4
gpt4 key购买 nike

我正在 Google 容器引擎上运行 Ruby on Rails 应用程序(在 Nginx 模式下使用 Passenger)。这些 Pod 位于 GCE 网络负载均衡器后面。我的问题是如何从 Rails 应用程序内部访问外部客户端 IP

Github 问题 here似乎提出了一个解决方案,但我运行了建议的:

for node in $(kubectl get nodes -o name | cut -f2 -d/); do
kubectl annotate node $node \
net.beta.kubernetes.io/proxy-mode=iptables;
gcloud compute ssh --zone=us-central1-b $node \
--command="sudo /etc/init.d/kube-proxy restart";
done

但我仍然收到 10.140.0.1REMOTE_ADDR header 。

关于如何访问真实客户端 IP(用于地理定位目的)的想法?

编辑:更清楚地说,我知道从 Rails 内部访问客户端 IP 的方法,但是所有这些解决方案都让我获得内部 Kubernetes IP,我相信 GCE 网络负载均衡器未配置(或也许无法)发送真实的客户端IP。

最佳答案

一位 Google 员工对 another version 的回答我的问题验证了目前使用 Google Container Engine 网络负载均衡器无法实现我正在尝试执行的操作。

编辑(2017 年 5 月 31 日):从 Kubernetes v1.5 及更高版本开始,可以使用 beta 注释 service.beta.kubernetes.io/external-traffic 在 GKE 上实现这一点。这是在 SO here 上回答的。请注意,当我添加注释时,健康检查在现有节点上创建。重新创建 LB 并重新启动节点解决了该问题。

关于google-compute-engine - 从 Google Compute Engine 网络负载均衡器后面访问外部客户端 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36108125/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com