我刚学习OSE 3.我想部署我创建的两个Node.js Web应用程序。所以我创建了一个带有两个Node.js部署的项目,这些部署现在在他们自己的Pod中运行。
我的问题是,他们应该如何沟通?例如,一个应用程序需要重定向到另一个应用程序,或者包含来自其他应用程序的组件。
我应该在配置文件中对每个应用程序的路由进行硬编码吗?
谢谢!
答案 0 :(得分:1)
对于两个服务之间的内部通信,您可以在建立连接时使用服务名称作为主机名。这是可能的,因为服务的名称被添加到内部DNS服务器,以便在名称上查找主机名将在那时为该服务生成正确的IP。当服务有多个pod时,内部IP负载均衡器会自动将请求路由到其中一个pod。
对于有关重定向的问题,似乎建议您公开公开这两种服务,并希望让一个服务返回HTTP响应,将HTTP客户端重定向到属于其他服务的URL。重定向URL需要取决于您如何公开服务。也就是说,是否将每个服务公开为不同的主机名,或者您是否使用基于路径的OpenShift路由在同一主机下的另一个子URL上覆盖一个。
无论哪种方式,您可能希望使用通过部署配置传入的环境变量来指示触发重定向的服务,告诉它需要重定向到的URL前缀是什么。您可以手动设置它。这至少意味着你没有在你的代码中硬连线。
如果您通过重定向表示其他内容,则需要更好地解释您的意思。