如何找出Load Balancer服务的外部IP?

时间:2018-01-17 00:04:38

标签: kubernetes google-cloud-platform google-compute-engine google-kubernetes-engine

我在Google云端平台上使用Kubernetes Engine。我有一个pod在Docker临时容器中运行进程。我还有一个负载均衡器服务,可以让我从外面访问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地址的外部站点?

1 个答案:

答案 0 :(得分:2)

每个Pod(除非配置为不这样做)在/var/run/secrets/kubernetes.io/servicetoken/token as described here中具有有效的kubernetes凭据,因此答案是使用kubernetes API来询问Pod前面的Servicestatus:loadBalancer:ingress:ip: as described here我完全有理由相信GKE会及时了解负载均衡器的任何变化。 kubernetes API总是(?)位于https://kubernetes(通常情况下,或https://kubernetes.default.svc.cluster.local是其全名),因此Pod应该只需要很少的配置进行查询。

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