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

可以从PAAS外部访问OpenShift路线,但不能从PAAS内部的客户访问

公良鸿风
2023-03-14

在同一个openshift项目中,我在POD1中有一个application1(APP1),在POD2中有另一个application(APP2)。
这两个应用程序都提供REST API服务。这两个应用程序可以使用两种不同的openshift路线访问。

从PAAS外部访问这两个应用程序(openshift)工作正常:这意味着使用来自PAAS外部客户端的openhsft路由执行到APP1/APP2的CURL操作正常。

但是,当 POD1 中的 APP1 使用 APP2 的 openshift 路由将 POD2 中的 APP2 提供的 REST 服务延迟时。它正在失败。同样,使用
openshift 路由从 APP1 的容器(使用 oc rsh)到 APP2 执行 CURL 也是失败的。

但是,如果APP1部署在此PAAS之外,则使用open shift route对APP2的客户端调用是有效的。< br >类似地,在PAAS之外使用openshift route对APP2进行CURL也可以正常工作。

此外,如果我使用服务 Paas 内部 IP/端口 (10.224.x.y),这将解决问题。但意味着使用两种不同的地址,具体取决于我们是从PAAS内部还是外部针对APP2。

所以问题是如何使OpenShift路由从PAAS内外可见?

或者是否有另一种方法可以共享相同的主机名/端口以从PAAS内外访问APP2?

共有1个答案

穆仲卿
2023-03-14

您可能想看看:

https://docs.openshift.com/container-platform/3.7/architecture/networking/networking.html

对于内部通信,使用服务名称就足够了(在您的情况下,使用app2中的app1 svc与app1通信)。当您访问routes视图时,您可以找到服务的名称-“routes To”列将显示服务名称。

此处详细介绍了服务的工作原理及其配置方式:

https://docs.openshift.com/container-platform/3.7/architecture/core_concepts/pods_and_services.html#services

 类似资料:
  • 问题内容: 我有两个包。我要从第一个包中导入的类声明为PUBLIC。尽管如此,当我从第二个软件包测试文件时,它向我显示了如下编译错误: PUBLICclass在mypackage中不是公共的;无法从外部包访问 我试图从第一个程序包中向该类添加一个公共构造函数,但没有任何区别。 你有什么想法?我使用Netbeans 7。 第一个包中的类如下所示: 问题答案: 让我猜猜 您最初的课堂声明不是公开的,然

  • 问题内容: 如何从内部类访问外部类? 我正在重写一种使它在不同线程上运行的方法。从内联线程中,我需要调用原始方法,但是当然只要调用就会变成无限递归。 具体来说,我在扩展BufferedReader: 这个地方给了我我找不到的NullPointerException。 谢谢。 问题答案: 像这样: 上面的测试在执行时显示:

  • 问题内容: 我有一堂课,还有另一个内部课: 问题答案: 从其他答案中可以看出,您将需要一个非静态内部类来执行此操作。 如果您确实不能使内部类成为非静态类,则可以在外部类中添加所需的getter和setter方法,并通过在内部静态类内部创建外部类的实例来访问它们:

  • 我有一个适用于OpenShift 4.2的kubeadmin帐户,并且能够通过成功登录。 我公开了内置的docker注册表通过默认路线记录在https://docs.openshift.com/container-platform/4.2/registry/securing-exposing-registry.html 我的docker客户端在macOS上运行,并配置为信任注册表的默认自签名证书

  • 问题内容: 是否可以从Java内部类中获取对它的引用? 即 问题答案: 您可以像这样访问外部类的实例:

  • 问题内容: 我来自Java背景,当您声明内部类时,它是静态的,不能访问外部类的实例,或者它不是静态的,并且可以访问正在被访问的外部类的实例。进行操作。参见http://en.wikipedia.org/wiki/Inner_class#Types_of_nested_classes_in_Java 斯威夫特对此有什么概念吗?从测试中,我似乎无法访问的对象,但是我肯定做错了。 问题答案: AFAIK