OpenShift 4.11中Ingress无法自动创建Route对象问题求助
OpenShift Ingress 自动生成Route失效问题排查与解决建议
问题描述
在IBM Cloud的OpenShift 4.11集群中执行以下操作后,Ingress未自动生成对应的Route:
- 创建新项目:
oc new-project test-ingress - 部署测试应用:
oc new-app openshift/hello-openshift - 创建无TLS的Ingress对象(配置如下)
此前在OpenShift 4.10集群中,将pathType: Exact改为pathType: Prefix可触发Route生成,但该方案在4.11版本中无效。
原Ingress配置:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: hello-openshift spec: rules: - host: hello-openshift.mycluster.example.com http: paths: - backend: # Forward to a Service called 'hello-openshift' service: name: hello-openshift port: number: 8080 path: / pathType: Exact
解决建议
1. 确认Ingress Controller运行状态
- 检查router pod是否正常就绪:
oc get pods -n openshift-ingress - 查看router日志,排查Ingress处理过程中的报错:
oc logs -n openshift-ingress -l app=router
2. 调整Ingress配置参数
OpenShift 4.11对Ingress资源的识别逻辑有调整,建议补充IngressClass注解并优化路径配置:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: hello-openshift # 指定OpenShift默认Ingress类 annotations: kubernetes.io/ingress.class: "default" spec: rules: - host: hello-openshift.mycluster.example.com http: paths: - backend: service: name: hello-openshift port: number: 8080 path: / pathType: Prefix
3. 验证后端服务可用性
- 确认目标Service存在且端口配置正确:
oc get svc hello-openshift - 检查Endpoint是否关联就绪的Pod:
若Endpoint无可用地址,需先排查应用Pod的运行状态。oc get endpoints hello-openshift
4. 检查集群IngressClass配置
确认集群中存在默认的IngressClass资源:
oc get ingressclasses
若default类不存在,需通过集群管理员配置对应的IngressClass关联router。
内容的提问来源于stack exchange,提问作者YuriyF
相关产品推荐
相关产品推荐

