$ 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.yaml
apiVersion: 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>