如何配置OpenShift Route与Router以暴露公网服务并绑定自定义域名
配置OpenShift公网路由并绑定自定义域名(www.example.com)
我之前在AWS上部署OpenShift Origin时也踩过这个路由配置的坑,咱们一步步来解决:
1. 获取OpenShift Router的公网访问地址
OpenShift的Router组件是外部流量进入集群的入口,在AWS环境下它通常以LoadBalancer类型的Service运行,先拿到它的公网入口信息:
- 用
oc命令登录集群后,执行:
(如果是旧版本的OpenShift Origin,Router可能在oc get svc router-default -n openshift-ingressdefault命名空间,命令改成oc get svc router -n default)
输出里的EXTERNAL-IP字段就是Router的公网入口——AWS环境下这里大概率是一个ELB域名(比如abc-123456789.us-east-1.elb.amazonaws.com),或者是一个弹性公网IP。
2. 配置域名DNS解析
接下来要把你的www.example.com指向刚才拿到的Router公网地址:
- 登录你的域名服务商控制台(比如AWS Route53、Cloudflare等)
- 创建对应记录:
- 如果Router是弹性公网IP,创建A记录:主机填
www,记录值填Router的弹性IP - 如果Router是ELB域名,创建CNAME记录:主机填
www,记录值填ELB的完整域名 - TTL建议设为300秒(5分钟),方便快速验证解析是否生效
- 如果Router是弹性公网IP,创建A记录:主机填
3. 修改现有路由绑定自定义域名
你已经有了内部路由http://demo-demo.router.default.svc.cluster.local/,直接修改它就能绑定自定义域名:
方法一:用命令行快速修改
替换YOUR_PROJECT_NAME为你的应用所在项目(比如demo),执行:
oc patch route demo-demo -n YOUR_PROJECT_NAME --type=merge -p '{"spec":{"host":"www.example.com"}}'
方法二:通过Web控制台修改
- 登录OpenShift Web控制台,进入你的应用项目
- 左侧菜单选择网络 -> 路由
- 找到
demo-demo路由,点击右侧的操作 -> 编辑路由 - 在主机名输入框填写
www.example.com,保存即可
4. 验证配置是否生效
- 先确认DNS解析生效:执行
nslookup www.example.com或dig www.example.com,检查返回的IP/域名是否和Router的公网入口一致 - 直接在浏览器访问
http://www.example.com,应该就能看到你的“hello world!”应用了
可选:配置HTTPS安全路由
如果需要启用HTTPS访问,你可以这么做:
- 申请
www.example.com的SSL证书(比如用Let's Encrypt免费证书,或者AWS ACM证书) - 在OpenShift项目中创建存储证书的Secret:
oc create secret tls example-tls-secret --cert=path/to/your-cert.pem --key=path/to/your-private-key.pem -n YOUR_PROJECT_NAME - 修改路由启用TLS:
也可以在Web控制台编辑路由时,开启安全路由选项,选择刚才创建的Secret即可oc patch route demo-demo -n YOUR_PROJECT_NAME --type=merge -p '{"spec":{"tls":{"termination":"edge","secretName":"example-tls-secret"}}}'
内容的提问来源于stack exchange,提问作者Hedi
相关产品推荐
相关产品推荐

