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

Dan*_*Dan 5 google-compute-engine google-cloud-platform kubernetes google-kubernetes-engine

我正在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
Run Code Online (Sandbox Code Playgroud)

有什么我可以使用的内部工具可以用于我的流程吗?还是我需要调用可镜像IP地址的外部站点的过程?

mda*_*iel 4

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

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