You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenShift路由端口指定咨询:如何暴露非80/443的专用端口

在OpenShift中为路由指定自定义暴露端口

当然可以!OpenShift的路由完全支持指定非80/443的专用端口,不用受限于默认端口。不过要注意,得先确保集群的Ingress Controller已经配置了监听你想要的自定义端口,否则路由创建后也无法正常访问。下面是具体的操作步骤和注意事项:

1. 确认Ingress Controller支持自定义端口

默认情况下,OpenShift的Ingress Controller只监听80(HTTP)和443(HTTPS)端口。要使用自定义端口,你需要修改IngressController资源,添加你想要暴露的端口:

比如,我们要添加8080(HTTP)和8443(HTTPS)端口,执行以下YAML配置:

apiVersion: operator.openshift.io/v1
kind: IngressController
metadata:
  name: default
  namespace: openshift-ingress-operator
spec:
  endpointPorts:
  - name: http-custom
    port: 8080
    protocol: HTTP
  - name: https-custom
    port: 8443
    protocol: HTTPS

将上述内容保存为ingress-controller-custom-ports.yaml,然后执行:
oc apply -f ingress-controller-custom-ports.yaml

等待Ingress Controller更新完成后,你可以通过以下命令验证端口是否已配置:
oc get ingresscontroller/default -n openshift-ingress-operator -o jsonpath='{.spec.endpointPorts}'

2. 创建带自定义端口的路由

配置好Ingress Controller后,就可以创建指向自定义端口的路由了,这里有两种方式:

方式一:使用oc命令直接创建

假设你有一个名为my-service的服务,它暴露了8080端口,现在要创建一个路由,将集群的8080端口映射到服务的8080端口:
oc create route edge --service=my-service --port=8080 --hostname=my-app.example.com --tls-termination=edge --insecure-policy=Redirect

参数说明:

  • --port=8080: 指定路由要关联的服务端口
  • --hostname: 你的自定义域名(如果不需要可以省略)
  • --tls-termination=edge: 配置TLS终止在Ingress Controller(根据你的需求选择合适的TLS策略)

方式二:使用YAML配置文件创建

创建一个custom-port-route.yaml文件,内容如下:

apiVersion: route.openshift.io/v1
kind: Route
metadata:
  name: my-custom-port-route
spec:
  host: my-app.example.com
  port:
    targetPort: 8080  # 服务暴露的端口
  tls:
    termination: edge
    insecureEdgeTerminationPolicy: Redirect
  to:
    kind: Service
    name: my-service
    weight: 100
  wildcardPolicy: None

然后执行:
oc apply -f custom-port-route.yaml

3. 验证路由是否生效

创建完成后,你可以通过以下命令查看路由的详细信息,确认端口配置正确:
oc get route my-custom-port-route -o yaml

之后就可以通过http://my-app.example.com:8080(或HTTPS的8443端口)访问你的应用了。

额外注意事项

  • 防火墙配置: 确保集群节点的防火墙已经开放了你指定的自定义端口,否则外部无法访问。
  • 负载均衡器: 如果你的集群使用了外部负载均衡器,需要将自定义端口添加到负载均衡器的转发规则中。
  • 域名解析: 如果使用了自定义hostname,要确保域名已经正确解析到Ingress Controller的入口IP(或负载均衡器IP)。

内容的提问来源于stack exchange,提问作者Geoffrey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:10:35