2017-08-29 77 views

回答

2

不可作为环境变量。同时请记住,一个容器可以接收来自多个负载平衡器的流量,并且在容器启动后外部IP可能会发生变化,从而导致陈旧的值;所以环境变量中的IP可能不是一个适当的解决方案。

如果您使用的是入口对象就可以判断它是通过查询Kubernetes API服务器的外部IP(试行kubectl get myingress -o yaml,看到status:部分)。

对于特定的传入http请求检查负载平衡器IP的X-Forwarded-For:标头。

由于这个问题被标记google-container-engine,您还可以使用gcloud来获取IP(可能是从一个initContainer或在启动时):

  • 如果您使用的入口:gcloud compute forwarding-rules describe k8s-fw-YOURNAMESPACE-YOURINGRESSNAME--YOURHASHVALUE --global --format='value(IPAddress)'
  • 如果您有一个静态IP保留:gcloud compute addresses describe my-static-ip-name --global --format='value(address)'