5.10. 使用带有 OpenShift ingress 分片的 Serving
您可以将 Knative Serving 与 OpenShift ingress 分片搭配使用,以根据域分割入口流量。这可让您更有效地管理和将网络流量路由到集群的不同部分。
即使使用 OpenShift ingress 分片,OpenShift Serverless 流量仍然通过单个 Knative Ingress 网关和 knative-serving
项目中的 activator 组件路由。
有关隔离网络流量的更多信息,请参阅使用 Service Mesh 与 OpenShift Serverless 隔离网络流量。
先决条件
- 安装了 OpenShift Serverless Operator 和 Knative Serving。
- 在 OpenShift Container Platform 上具有集群管理员权限,或者对 Red Hat OpenShift Service on AWS 或 OpenShift Dedicated 有集群或专用管理员权限。
5.10.1. 配置 OpenShift ingress 分片 复制链接链接已复制到粘贴板!
在配置 Knative Serving 前,您必须配置 OpenShift ingress 分片。
5.10.2. 在 KnativeServing CR 中配置自定义域 复制链接链接已复制到粘贴板!
配置 OpenShift ingress 分片后,您必须配置 Knative Serving 以匹配它们。
流程
在
KnativeServing
CR 中,通过添加spec.config.domain
字段将 Serving 配置为使用与入口分片相同的域和标签:KnativeServing
CR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 这些值需要与 ingress 分片配置中的值匹配。
5.10.3. 以 Knative Service 中的特定入口分片为目标 复制链接链接已复制到粘贴板!
配置入口分片和 Knative Serving 后,您可以使用标签将 Knative Service 资源中的特定入口分片作为目标。
5.10.4. 使用 OpenShift ingress 分片配置验证 Serving 复制链接链接已复制到粘贴板!
配置入口分片、Knative Serving 和服务后,您可以验证您的服务是否使用正确的路由和所选入口分片。
流程
运行以下命令输出集群中服务的信息:
oc get ksvc
$ oc get ksvc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME URL LATESTCREATED LATESTREADY READY REASON hello-dev https://hello-dev-default.dev.serverless.cluster.example.com hello-dev-00001 hello-dev-00001 True hello-prod https://hello-prod-default.prod.serverless.cluster.example.com hello-prod-00001 hello-prod-00001 True
NAME URL LATESTCREATED LATESTREADY READY REASON hello-dev https://hello-dev-default.dev.serverless.cluster.example.com hello-dev-00001 hello-dev-00001 True hello-prod https://hello-prod-default.prod.serverless.cluster.example.com hello-prod-00001 hello-prod-00001 True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证您的服务是否使用正确的路由和所选入口分片:
oc get route -n knative-serving-ingress -o jsonpath='{range .items[*]}{@.metadata.name}{" "}{@.spec.host}{" "}{@.status.ingress[*].routerName}{"\n"}{end}'
$ oc get route -n knative-serving-ingress -o jsonpath='{range .items[*]}{@.metadata.name}{" "}{@.spec.host}{" "}{@.status.ingress[*].routerName}{"\n"}{end}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
route-19e6628b-77af-4da0-9b4c-1224934b2250-323461616533 hello-prod-default.prod.serverless.cluster.example.com ingress-prod route-cb5085d9-b7da-4741-9a56-96c88c6adaaa-373065343266 hello-dev-default.dev.serverless.cluster.example.com ingress-dev
route-19e6628b-77af-4da0-9b4c-1224934b2250-323461616533 hello-prod-default.prod.serverless.cluster.example.com ingress-prod route-cb5085d9-b7da-4741-9a56-96c88c6adaaa-373065343266 hello-dev-default.dev.serverless.cluster.example.com ingress-dev
Copy to Clipboard Copied! Toggle word wrap Toggle overflow