当前位置: 首页 > 知识库问答 >
问题:

从其中运行的应用程序读取 k8s pod 的 IP

那鹏
2023-03-14

我有两个k8s吊舱在运行。每个吊舱内都有一个单独的容器。我的应用程序将在每个容器中运行。我想从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(播放框架)。

共有2个答案

单于海荣
2023-03-14

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

司徒光霁
2023-03-14

您可以通过将如下内容放入Pod清单中,将Pod IP(或Pod描述符的任何其他属性)暴露给Pod的环境变量:

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

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

 类似资料:
  • 实际上,我不确定是否有可能强制其他应用程序从返回所需字节的Java进程中读取文件,而不是从磁盘中读取文件,所以首先,这些信息可能会有所帮助。 你也可以忽略强迫的想法!我是否可以从我的java应用程序中打开其他应用程序,例如Adobe Acrobat Reader,并将字节注入其中,而不是单独打开它并用它读取pdf文件? 如果可能的话,有人能解释一下吗?我在网上搜索了太多,但没有找到答案。 你可能还

  • 这基本上意味着我没有读取该文件的权限。

  • 问题内容: 我需要从自己的Java程序中运行其他几个程序,基本上我需要运行这些命令行语句。 和 并且我需要在自己的程序中使用从这些程序写入控制台的文本输出。我已经尝试过使用svn运行Runtime.getRuntime()。exec(),但是它似乎没有做任何事情,因为它没有生成svn.log文件。同样,两个程序都需要在不同的地方调用,svn行需要从一个文件夹内调用,而java行需要从另一文件夹内调

  • 版本 openjdk版本“11.0.11”2021-04-20 如果可能的话,请不要告诉我像我以前看到其他人回答的那样“阅读基础知识”。我只是不确定为什么我的代码不能在我的最后一个项目中运行。 提前谢谢你!

  • 问题内容: 我有一个包含清单文件的webapp,在执行蚂蚁构建任务时,我在其中写入应用程序的当前版本。清单文件已正确创建,但是在运行时尝试读取清单文件时,会出现一些奇怪的副作用。我在清单中读取的代码是这样的: 当我将eclipse附加到tomcat时,我看到上面的代码起作用了,但是它似乎得到了与我期望的清单文件不同的清单文件,由于蚂蚁版本和构建时间戳都不同,所以我可以看出来。然后,我将“ META

  • 本地angular应用程序在-http://localhost:4200/alerts;alerttype=renewals;cor=411119上成功运行 到目前为止,我已经将angular dist文件夹复制到遗留应用程序的webcontent文件夹中,并运行应用程序,如下所示 http://localhost:9086/customer/eWeb/alertapp/alerts;alertt