从内部运行的应用程序读取k8s pod的IP

时间:2018-05-14 14:29:26

标签: kubernetes

我有两个k8s pod正在运行。每个吊舱内部都有一个容器。我的应用程序将在每个容器内运行。我想从Pod1中的应用程序直接调用我的Pod2中的应用程序。

假设我在集群外部拥有某种持久存储。所以我的逻辑看起来像这样。

App in Pod1 -> get Pod1 IP address -> save to external storage

App in Pod2 -> read Pod1 IP address from storage -> complete HTTP call to App1 in Pod1

如何从我的应用程序中获取此IP地址。我正在使用Java(Play Framework)。

2 个答案:

答案 0 :(得分:3)

您可以将Pod IP(或Pod描述符的任何其他属性)暴露给Pod的环境变量,方法是在Pod中添加如下内容:

env:
- name: MY_POD_IP
  valueFrom:
    fieldRef:
      fieldPath: status.podIP

话虽如此,Yonah的回答很可能是你真正需要的。服务发现是Kubernetes的一等公民。

答案 1 :(得分:1)

在kubernetes中有一个概念,称为专门为您尝试使用的目的而构建的服务。例如,部署在kubernetes中的前端和后端可以使用服务名称相互访问。在您的情况下,为两个pod创建服务,您应该能够从任何其他pod访问您的pod。 除此之外,服务还有许多好处,应该使用。 https://kubernetes.io/docs/concepts/services-networking/service/ 祝好运!