Openshift 中的 Keycloak,从 pod 调用

Keycloak in Openshift, being called from a pod

我有一个关于 Keycloak 和 Openshift 的棘手问题。

我已经在 Openshift Origin 安装中设置了 Keycloak 服务器,并为其设置了外部路由。

我还在同一个 Openshift Origin 中设置了一个 nodejs 应用程序,我正在尝试使用它的外部路由 DNS 访问 Keycloak 服务器。

Keycloak 服务器在 identity.myapp.com 外部可用 我的应用程序在 app.myapp.com

外部可用

但是当我的 nodejs 应用程序尝试使用令牌端点检索令牌时,它会遇到 No route to Host 错误。

当我进入 nodejs 应用程序 pod 并 ping 外部 DNS 名称时,它会正确响应,但是当我在其上尝试 wget 命令时,我也会收到 No route to Host 错误。

这是我的测试日志:

sh-4.2$ ping identity.myapp.com  
PING identity.myapp.com (xx.xx.xx.xx) 56(84) bytes of data. 
64 bytes from xxx (xx.xx.xx.xx): icmp_seq=1 ttl=63 time=0.236 ms
64 bytes from xxx (xx.xx.xx.xx): icmp_seq=2 ttl=63 time=0.170 ms 
--- identity.myapp.com ping statistics --- 
2 packets transmitted, 2 received, 0% packet loss, time 1000ms 
rtt min/avg/max/mdev = 0.170/0.203/0.236/0.033 ms  
sh-4.2$ wget https://identity.myapp.com 
--2017-06-28 20:29:29--  https://identity.myapp.com/
Resolving identity.myapp.com (identity.myapp.com)... xx.xx.xx.xx  
Connecting to identity.myapp.com (identity.myapp.com)|xx.xx.xx.xx|:443... failed: No route to host.                                             

我无法使用它的内部 DNS 名称调用 Keycloak 服务器,它被设置为使用它的外部发行者 DNS 名称传递令牌,任何使用其他名称调用它都会导致 Invalid token issuer 错误(我已经在我用的图书馆github开了票,你可以找到here

我的最终解决方案是将 Keycloak 服务器外部化,但我会失去 Openshift 提供的所有好处...

如何从我的应用程序窗格中使用它在 HTTPS 中的外部 DNS 名称访问 Keycloak 服务器?

问题可能与路由器或 DNS 有关。您是否尝试过为您的 nodejs 应用程序设置外部 DNS 提供商?

我假设你也设置了 route