【发布时间】:2016-07-06 14:37:25
【问题描述】:
我正在 Google Container Engine 上运行 Ruby on Rails 应用程序(在 Nginx 模式下使用 Passenger)。这些 pod 位于 GCE 网络负载均衡器后面。我的问题是如何从 Rails 应用程序内部访问外部Client 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.1 的 REMOTE_ADDR 标头。
关于如何访问真实的Client IP(用于地理定位)的想法?
编辑:更清楚地说,我知道从 Rails 内部访问客户端 IP 的方法,但是所有这些解决方案都让我获得了内部 Kubernetes IP,我相信没有配置 GCE 网络负载均衡器(或可能无法)发送真实的客户端 IP。
【问题讨论】: