如何找出负载均衡器服务的外部 IP



我在 Google Cloud Platform 上使用 Kubernetes Engine。我有一个在 Docker 暂存容器中运行进程的 pod。我还有一个负载均衡器服务,使我能够从外部世界访问 Pod。

在 Pod 中运行的进程需要知道其外部 IP 地址是什么。我怎样才能得到这个?

在使用 Kubernetes Engine 之前,我使用的是 Compute Engine,可以通过以下方法找到外部 IP 地址:

curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip

我可以使用任何可用于我的流程的内部工具吗?或者我是否需要调用可以镜像 IP 地址的外部站点的过程?

每个 Pod(除非配置为不这样做(在/var/run/secrets/kubernetes.io/serviceaccount/token中都有有效的 kubernetes 凭据,如此处所述,所以答案是使用 kubernetes API 向 Pod 前面的Service询问其status:loadBalancer:ingress:ip:,如此处所述,我完全有理由相信 GKE 会及时了解负载均衡器的任何更改。kubernetes API 总是(?(位于https://kubernetes(这通常就足够了,或者https://kubernetes.default.svc.cluster.local是它的全名(,所以 Pod 执行查找所需的配置应该很少。

该响应的星号是必须向位于其前面的服务 Pod 提供服务的名称,因为(在大多数情况下(Pod 无法知道有多少服务指向它。

最新更新