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



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

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

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(。

你可以将Pod IP(或 Pod 描述符的任何其他属性(暴露给 Pod 的环境变量,方法是在 Pod 清单中放置如下内容:

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

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

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

最新更新