gpt4 book ai didi

routes - Openshift 中运行的两个应用程序如何相互发送请求?

转载 作者:行者123 更新时间:2023-12-02 16:42:30 26 4
gpt4 key购买 nike

假设这种情况:

Openshift 中部署了两个应用程序(可能在同一命名空间中,也可能不在同一命名空间中),它们想要互相发送 HTTP 请求。

总体问题:

似乎在 Openshift 内运行的应用程序无法使用其路由(由 Openshift 创建)来相互调用。我想到的唯一解决方案是将应用程序部署在同一命名空间中,并让它们调用与应用程序关联的服务的 clusterIP 地址。

我的案例中的问题:

我开发了一个物联网平台。在平台中,有一个资源注册表(RR)来保存有关可用主机的信息。机器或人类都可以查询 RR 并找到如何与可用主机通信的方法。通过上述问题,如果 RR 存储了服务的 ClusterIP 地址,则只有在 Openshift 中的命名空间内运行的主机才能相互发送请求。另一方面,如果 RR 存储了路由(由 Openshift 创建),则 Openshift 内运行的所有主机都无法相互发送请求。

问题:

Openshift 内的两个应用程序如何相互发送请求? Openshift 外部的应用程序是否有统一的方式向 Openshift 内部的另一个应用程序发送请求,就像 Openshift 内部的两个应用程序相互发送请求一样?

最佳答案

对于每项服务,都会在内部 DNS 中设置一个主机名。因此,如果您有一项名为 mybackend 的服务,那么同一项目中的任何内容都可以使用主机名 mybackend 访问它.

如果服务是另一个项目,则附加另一个项目,并用 . 分隔。如mybackend.myotherproject .

默认情况下,一个项目中的事物无法创建与其他项目中的服务的直接连接,因此为了实现这一点,管理员需要设置一个 Pod 网络以允许不同项目中的应用程序相互连接。请参阅oc adm pod-network后者的命令。

换句话说,您永远不必自己处理 IP 地址。您应该使用从服务名称创建的主机名,因为即使您销毁并重新创建应用程序并且由于重新创建服务而导致 IP 发生变化,该主机名也能正常工作。

有关 DNS 和网络的更多信息,请参阅:

关于routes - Openshift 中运行的两个应用程序如何相互发送请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42820382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com