OpenShift::如何在自定义端口(非web/非http)上启用pod流量

OpenShift::如何在自定义端口(非web/非http)上启用pod流量,openshift,openshift-origin,openshift-client-tools,openshift-enterprise,Openshift,Openshift Origin,Openshift Client Tools,Openshift Enterprise,我们如何在自定义端口(非web/非http)上启用pod流量 例如考虑端口12121。 我试着通过这条路线暴露端口。 但无法从同一命名空间中的另一个pod访问此pod OpenShift支持此功能吗 如果有人曾经尝试过,请分享你是如何做到这一点的 谢谢。您可以使用要添加的端口自定义现有的路由器,或者使用自定义端口添加路由器。有关详细信息,请参阅 定制路由器 你有一些选择,这取决于你想要实现什么,但我不会为此使用路线 如果您不关心端口号,则可以使用节点端口服务。NodePorts是群集管理员

我们如何在自定义端口(非web/非http)上启用pod流量

例如考虑端口12121。

我试着通过这条路线暴露端口。 但无法从同一命名空间中的另一个pod访问此pod

OpenShift支持此功能吗

如果有人曾经尝试过,请分享你是如何做到这一点的


谢谢。

您可以使用要添加的端口自定义现有的
路由器
,或者使用自定义端口添加
路由器
。有关详细信息,请参阅

  • 定制路由器

你有一些选择,这取决于你想要实现什么,但我不会为此使用路线

  • 如果您不关心端口号,则可以使用节点端口服务。NodePorts是群集管理员定义的一系列端口(默认值为30000-32767),可分配给服务,并在群集中的每个节点上公开,适用于TCP和UDP流量。本例指定要使用的节点端口,但如果您不提供,服务控制器将分配一个可用的节点端口
OpenShift文档:

如果需要公开特定端口,则可以:

  • 使用负载平衡器服务,该服务将允许您公开负载平衡器IP上的端口。请注意,这需要使用可使用的IP列表(这是主机上的配置)设置集群,并将IP路由到集群中的节点(这可以通过OpenShift的ipfailover automation实现)
OpenShift文档:

  • 不太理想的情况是,您可以使用主机端口并直接在运行pod的主机上公开端口,但这仅在您希望将流量路由到主机而不进行流量平衡时才起作用。这种方法违背了最佳实践,但可以作为最后手段使用

谢谢你的回复。我不是想更改HTTP端口,我是在请求与非WEB/非HTTP应用程序相关的查询。如果您对此场景有任何建议,请与我们分享。再次感谢你。
    oc adm router --replicas=0 --ports='12121:12121,443:443' 
    oc set env dc/router ROUTER_SERVICE_HTTP_PORT=12121  \
                         ROUTER_SERVICE_HTTPS_PORT=443
    oc scale dc/router --replicas=1

    iptables -A INPUT -p tcp --dport 12121 -j ACCEPT
apiVersion: v1
kind: Service
metadata:
  name: mysql
  labels:
    name: mysql
spec:
  type: NodePort
  ports:
    - port: 3306
      nodePort: 30306
      name: http
  selector:
    name: mysql
apiVersion: v1
kind: Service
metadata:
  name: egress-2 
spec:
  ports:
  - name: db
    port: 3306 
  loadBalancerIP:
  type: LoadBalancer 
  selector:
    name: mysql 
apiVersion: v1
kind: Pod
metadata:
  name: mysql
spec:
  containers:
  - image: mysql
    name: mysql
    ports:
    - name: mysql
      containerPort: 3306
      hostPort: 3306