在同一个openshift项目中,我在POD1中有一个应用程序1(APP1),在POD2中有一个应用程序(APP2)。
这两个应用程序都提供 REST API 服务。这 2 个应用程序可以使用 2 个不同的 openshift 路线访问。
从PAAS(openshift)外部访问这两个应用程序工作正常:这意味着使用来自PAAS外部客户端的openhsift路由将CURL连接到APP1/APP2是有效的。
但是,当 POD1 中的 APP1 使用 APP2 的 openshift 路由将 POD2 中的 APP2 提供的 REST 服务延迟时。它正在失败。
同样,使用 openshift 路由从 APP1 的容器(使用 oc rsh)到 APP2 执行 CURL 也是失败的。
但是,如果 APP1 部署在此 PAAS 之外,则使用开放班次路由对 APP2 的客户端调用将正常工作。
同样,使用 openshift 路由将 CURL 连接到 APP2 在 PAAS 外部工作正常。
此外,如果我使用服务 Paas 内部 IP/端口 (10.224.x.y),这将解决问题。但意味着使用两种不同的地址,具体取决于我们是从PAAS内部还是外部针对APP2。
那么问题是如何使敞开式路线从PAAS内部和外部可见?
或者是否有另一种方法可以共享相同的主机名/端口以从 PAAS 内部和外部访问 APP2?
你可能想看看:
https://docs.openshift.com/container-platform/3.7/architecture/networking/networking.html
对于内部通信,使用服务名称就足够了(在您的情况下,使用 app2 中的 app1-svc 与 app1 通信)。 您可以在访问路由视图时找到服务的名称 - "路由到"列显示服务名称。
此处详细介绍了服务的工作原理及其配置方式:
https://docs.openshift.com/container-platform/3.7/architecture/core_concepts/pods_and_services.html#services