10.2. 为 Knative 服务配置自定义域
Knative 服务会自动根据集群配置分配默认域名。例如,< ;service_name>-<namespace>.example.com
。您可以通过将您自己的自定义域名映射到 Knative 服务来自定义 Knative 服务域。
您可以通过为服务创建 DomainMapping
资源来完成此操作。您还可以创建多个 DomainMapping
资源,将多个域和子域映射到单个服务。
10.2.1. 创建自定义域映射
您可以通过将您自己的自定义域名映射到 Knative 服务来自定义 Knative 服务域。要将自定义域名映射到自定义资源(CR),您必须创建一个映射到可寻址目标 CR 的 DomainMapping
CR,如 Knative 服务或 Knative 路由。
先决条件
- 在集群中安装了 OpenShift Serverless Operator 和 Knative Serving。
-
安装 OpenShift CLI(
oc
)。 - 您已创建了一个项目,或者具有适当的角色和权限访问项目,以便在 OpenShift Container Platform 中创建应用程序和其他工作负载。
您已创建了 Knative 服务,并控制要映射到该服务的自定义域。
注意您的自定义域必须指向 OpenShift Container Platform 集群的 IP 地址。
流程
在与您要映射的目标 CR 相同的命名空间中创建一个包含
DomainMapping
CR 的 YAML 文件:apiVersion: serving.knative.dev/v1alpha1 kind: DomainMapping metadata: name: <domain_name> 1 namespace: <namespace> 2 spec: ref: name: <target_name> 3 kind: <target_type> 4 apiVersion: serving.knative.dev/v1
服务域映射示例
apiVersion: serving.knative.dev/v1alpha1 kind: DomainMapping metadata: name: example.com namespace: default spec: ref: name: example-service kind: Service apiVersion: serving.knative.dev/v1
路由域映射示例
apiVersion: serving.knative.dev/v1alpha1 kind: DomainMapping metadata: name: example.com namespace: default spec: ref: name: example-route kind: Route apiVersion: serving.knative.dev/v1
将
DomainMapping
CR 应用为 YAML 文件:$ oc apply -f <filename>