$ oc create secret tls <name>-tls --cert=fullchain.pem --key=privkey.pem -n <my_project>
|
从 Red Hat OpenShift Service on AWS 4.14 版本开始,自定义域名操作符已弃用。要管理 Red Hat OpenShift Service on AWS 4.14 中的 Ingress,请使用 Ingress 操作符。Red Hat OpenShift Service on AWS 4.13 和更早版本的功能保持不变。 |
您可以为您的应用程序配置自定义域名。自定义域名是可与 Red Hat OpenShift Service on AWS 应用程序一起使用的特定通配符域名。
顶级域名 (TLD) 由运营 Red Hat OpenShift Service on AWS 集群的客户拥有。自定义域名操作符会设置一个新的带有自定义证书的 Ingress 控制器作为第二天操作。然后,外部 DNS 可以使用此 Ingress 控制器的公共 DNS 记录来创建通配符 CNAME 记录,用于自定义域名。
|
不支持自定义 API 域名,因为 Red Hat 控制 API 域名。但是,客户可以更改其应用程序域名。对于具有私有 |
具有dedicated-admin 权限的用户帐户
唯一的域名或通配符域名,例如*.apps.<company_name>.io
自定义证书或通配符自定义证书,例如CN=*.apps.<company_name>.io
访问安装了最新版本oc CLI 的集群
请勿在CustomDomain CR 的metadata/name: 部分中使用保留名称default 或apps*(例如apps 或apps2)。 |
从私钥和公钥证书创建一个新的 TLS 密钥,其中fullchain.pem 和privkey.pem 是您的公共或私有通配符证书。
$ oc create secret tls <name>-tls --cert=fullchain.pem --key=privkey.pem -n <my_project>
创建一个新的CustomDomain 自定义资源 (CR)
<company_name>-custom-domain.yamlapiVersion: managed.openshift.io/v1alpha1
kind: CustomDomain
metadata:
name: <company_name>
spec:
domain: apps.<company_name>.io (1)
scope: External
loadBalancerType: Classic (2)
certificate:
name: <name>-tls (3)
namespace: <my_project>
routeSelector: (4)
matchLabels:
route: acme
namespaceSelector: (5)
matchLabels:
type: sharded
| 1 | 自定义域名。 |
| 2 | 自定义域名的负载均衡器类型。此类型可以是默认的classic 或如果您使用网络负载均衡器,则为NLB。 |
| 3 | 在上一步骤中创建的密钥。 |
| 4 | 可选:过滤 CustomDomain Ingress 提供服务的路由集。如果未提供值,则默认为不进行过滤。 |
| 5 | 可选:过滤 CustomDomain Ingress 提供服务的命名空间集。如果未提供值,则默认为不进行过滤。 |
应用 CR
$ oc apply -f <company_name>-custom-domain.yaml
获取新创建的 CR 的状态
$ oc get customdomains
NAME ENDPOINT DOMAIN STATUS
<company_name> xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com *.apps.<company_name>.io Ready
使用端点值,向您的托管 DNS 提供商(例如 Route53)添加新的通配符 CNAME 记录集。
*.apps.<company_name>.io -> xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com
创建一个新的应用程序并公开它
$ oc new-app --docker-image=docker.io/openshift/hello-openshift -n my-project
$ oc create route <route_name> --service=hello-openshift hello-openshift-tls --hostname hello-openshift-tls-my-project.apps.<company_name>.io -n my-project
$ oc get route -n my-project
$ curl https://hello-openshift-tls-my-project.apps.<company_name>.io
Hello OpenShift!
您可以使用oc CLI 工具通过自定义域名操作符 (CDO) 续订证书。
您已安装最新版本的oc CLI 工具。
创建新的密钥
$ oc create secret tls <secret-new> --cert=fullchain.pem --key=privkey.pem -n <my_project>
修补 CustomDomain CR
$ oc patch customdomain <company_name> --type='merge' -p '{"spec":{"certificate":{"name":"<secret-new>"}}}'
删除旧密钥
$ oc delete secret <secret-old> -n <my_project>