第 6 章 部署
6.1. 应用程序自定义域
从 Red Hat OpenShift Service on AWS 4.14 开始,Custom Domain Operator 已被弃用。要在 Red Hat OpenShift Service on AWS 4.14 中管理 Ingress,请使用 Ingress Operator。Red Hat OpenShift Service on AWS 4.13 及更早版本的功能不会改变。
您可以为应用程序配置自定义域。自定义域是可用于 AWS 应用程序上的 Red Hat OpenShift Service 的特定通配符域。
6.1.1. 为应用程序配置自定义域
顶级域 (TLD) 由操作 Red Hat OpenShift Service on AWS 的用户所有。Custom Domains Operator 使用自定义证书设置一个新的入口控制器作为第二天操作。然后,外部 DNS 可以使用这个 ingresscontroller 的公共 DNS 记录来创建用于自定义域的通配符 CNAME 记录。
						不支持自定义 API 域,因为 API 域由红帽控制。但是,客户可以更改自己的应用程序域。对于带有私有 IngressController 的专用自定义域,在 CustomDomain CR 中将 .spec.scope 设置为 Internal。
					
先决条件
- 
							具有 dedicated-admin特权的用户帐户
- 
							唯一的域或通配符域,如 *.apps.<company_name>.io
- 
							一个自定义证书或通配符自定义证书,如 CN=*.apps.<company_name>.io
- 
							访问安装最新版本的 ocCLI 的集群
						不要在 CustomDomain CR 的 metadata/name: 部分中使用保留的名称 default 或 apps*(如apps 或 apps2)。
					
流程
- 从私钥和公共证书创建一个新的 TLS secret,其中 - fullchain.pem和- privkey.pem是您的公共或私有通配符证书。- 示例 - oc create secret tls <name>-tls --cert=fullchain.pem --key=privkey.pem -n <my_project> - $ oc create secret tls <name>-tls --cert=fullchain.pem --key=privkey.pem -n <my_project>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 创建新的 - CustomDomain自定义资源(CR):- 示例 - <company_name>-custom-domain.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 应用 CR: - 示例 - oc apply -f <company_name>-custom-domain.yaml - $ oc apply -f <company_name>-custom-domain.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 获取新创建的 CR 的状态: - oc get customdomains - $ oc get customdomains- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - NAME ENDPOINT DOMAIN STATUS <company_name> xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com *.apps.<company_name>.io Ready - NAME ENDPOINT DOMAIN STATUS <company_name> xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com *.apps.<company_name>.io Ready- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用端点值,向受管 DNS 供应商(如 Route53、Azure DNS 或 Google DNS)添加新的通配符 CNAME 记录。 - 示例 - *.apps.<company_name>.io -> xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com - *.apps.<company_name>.io -> xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 创建新应用并公开它: - 示例 - oc new-app --docker-image=docker.io/openshift/hello-openshift -n my-project - $ oc new-app --docker-image=docker.io/openshift/hello-openshift -n my-project- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 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 create route <route_name> --service=hello-openshift hello-openshift-tls --hostname hello-openshift-tls-my-project.apps.<company_name>.io -n my-project- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - oc get route -n my-project - $ oc get route -n my-project- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - curl https://hello-openshift-tls-my-project.apps.<company_name>.io - $ curl https://hello-openshift-tls-my-project.apps.<company_name>.io Hello OpenShift!- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
6.1.2. 为自定义域续订证书
					您可以使用 oc CLI 工具使用 Custom Domains Operator (CDO) 续订证书。
				
先决条件
- 
							已安装最新版本的 ocCLI 工具。
流程
- 创建新 secret - oc create secret tls <secret-new> --cert=fullchain.pem --key=privkey.pem -n <my_project> - $ oc create secret tls <secret-new> --cert=fullchain.pem --key=privkey.pem -n <my_project>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- Patch CustomDomain CR - oc patch customdomain <company_name> --type='merge' -p '{"spec":{"certificate":{"name":"<secret-new>"}}}'- $ oc patch customdomain <company_name> --type='merge' -p '{"spec":{"certificate":{"name":"<secret-new>"}}}'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 删除旧的 secret - oc delete secret <secret-old> -n <my_project> - $ oc delete secret <secret-old> -n <my_project>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
故障排除