如何将CNAME指向OpenShift Route解决自定义域名访问报错问题
错误根因
OpenShift集群的Router(Ingress Controller)依赖HTTP请求的Host头匹配对应的Route规则,转发流量到后端服务。你将breeze.us指向原OpenShift Route地址时,请求携带的Host为breeze.us,和现有Route配置的主机名books-student-book-reservation-backend-project.apps.amarige.hostname.us不匹配,Router找不到对应的后端服务,就会返回“Application is not available”错误。
解决方案
根据你的使用场景选择对应方案即可:
- 方案1:保留原生Route地址可访问,同时支持
breeze.us访问(地址栏显示breeze.us)- 编辑现有Route配置,执行命令:
oc edit route <你的Route名称> -n <你的应用所在项目名称> - 在
spec字段下添加alternateHosts配置,写入自定义域名:spec: host: books-student-book-reservation-backend-project.apps.amarige.hostname.us alternateHosts: - breeze.us - 配置
breeze.us的DNS解析,将其A记录指向OpenShift集群Router的对外入口IP(即原生Route地址解析到的IP) - 若Route配置了HTTPS证书,需更新证书使其同时覆盖原生域名和
breeze.us,避免访问时报证书不信任错误。
- 编辑现有Route配置,执行命令:
- 方案2:仅使用
breeze.us访问,原生Route地址不再使用
直接修改现有Route的spec.host字段值为breeze.us,后续步骤同方案1的3、4步即可。 - 方案3:无需隐藏原生URL,仅需要用户输入
breeze.us自动跳转到原生地址
不需要修改OpenShift侧配置,直接在你的域名服务商处为breeze.us配置URL显性跳转(302跳转)到原生Route地址即可。
内容的提问来源于stack exchange,提问作者Billy Billy
相关产品推荐
相关产品推荐

