首页 > 解决方案 > 如何将请求映射到 Openshift v3 中 pod 中的多个端口?

问题描述

我有一个执行 http 和 ws 请求的网络应用程序。我正在尝试将其部署到 Openshift v3。因此,我需要将我的请求映射到 pod 中的端口 80 和 90。然而:

  1. 相关线程中所述,路由不可能公开多个端口,因此,我不能仅根据端口将请求映射到不同的服务。
  2. 我尝试设置一个路由,将任何端口映射到具有多个端口的服务,但我收到警告

路由没有目标端口,但服务有多个端口。该路由将轮询服务上所有公开端口的流量

  1. 我不能为 http 和 ws 使用不同的路由,因为为 http 获得的会话 cookie 不会附加到 web 套接字请求。

解决方案(?):

那么,我错过了什么?处理这个问题的最佳方法是什么?

标签: openshiftopenshift-3

解决方案


如果任何 websocket 端点位于唯一的子 URL 路径下,您可以添加第二个路由,其中​​包含该路由适用的子 URL 路径的路径定义。然后,您可以将该子 URL 路径下的请求路由到备用端口。除了主端口之外,您还需要对服务上的备用端口进行定义,或者为备用端口创建单独的服务。需要查看您当前的服务定义才能更具体。奇怪的是,您将在 pod 上使用端口 80 和 90,因为这意味着您正在运行容器root,这在 OpenShift 上是不正常的做法,因为root在容器托管平台上运行任何容器存在安全风险。


推荐阅读