1.3. 将 Service Mesh 与 OpenShift Serverless 集成
您可以在不使用 Kourier 作为默认入口的情况下将 Service Mesh 与 OpenShift Serverless 集成。要做到这一点,在完成以下步骤前不要安装 Knative Serving 组件。在创建 KnativeServing 自定义资源定义 (CRD) 以将 Knative Serving 与 Service Mesh 集成时,还需要额外的步骤,这没有在一般的 Knative Serving 安装过程中覆盖。如果您要将 Service Mesh 集成为 OpenShift Serverless 安装的默认的且唯一的 ingress,这个步骤可能很有用。
先决条件
- 在 OpenShift Container Platform 上具有集群管理员权限,或者对 Red Hat OpenShift Service on AWS 或 OpenShift Dedicated 有集群或专用管理员权限。
- 您已创建了一个项目,或者具有适当的角色和权限访问项目,以创建应用程序和其他工作负载。
安装 Red Hat OpenShift Service Mesh Operator,并在
istio-system命名空间中创建ServiceMeshControlPlane资源。如果要使用 mTLS 功能,还必须将ServiceMeshControlPlane资源的spec.security.dataPlane.mtls字段设置为true。重要在 Service Mesh 中使用 OpenShift Serverless 只支持 Red Hat OpenShift Service Mesh 2.0.5 或更高版本。
- 安装 OpenShift Serverless Operator。
-
安装 OpenShift CLI (
oc) 。
流程
将您要与 Service Mesh 集成的命名空间作为成员添加到
ServiceMeshMemberRoll对象中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 要与 Service Mesh 集成的命名空间列表。
重要此命名空间列表必须包含
knative-serving和knative-eventing命名空间。应用
ServiceMeshMemberRoll资源:oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建必要的网关,以便 Service Mesh 可以接受流量:
使用 HTTP 的
knative-local-gateway对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 HTTPS 的
knative-local-gateway对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用
Gateway资源:oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过创建以下
KnativeServing自定义资源定义 (CRD) 来安装 Knative Serving,该定义还启用了 Istio 集成:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用
KnativeServing资源:oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过创建以下
KnativeEventing自定义资源定义(CRD),该定义也可以启用 Istio 集成来安装 Knative Eventing:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Knative Eventing 与 Service Mesh 集成只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
应用
KnativeEventing资源:oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过创建以下
KnativeKafka自定义资源定义(CRD),该定义也可以启用 Istio 集成来安装 Knative Kafka:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Knative Eventing 与 Service Mesh 集成只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
应用
KnativeKafka资源:oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 安装
ServiceEntry以使 Red Hat OpenShift Service Mesh 了解KnativeKafka组件和 Apache Kafka 集群之间的通信:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意spec.ports中列出的端口是 TCP 端口示例,它依赖于如何配置 Apache Kafka 集群。应用
ServiceEntry资源:oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要确保在 ServiceEntry 中设置地址。如果没有设置地址,无论主机是什么,ServiceEntry 中定义的端口上的所有流量都会匹配。
验证
创建一个启用了 sidecar 注入并使用 pass-through 路由的 Knative Service:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用
Service资源:oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
使用 CA 信任的安全连接访问无服务器应用程序:
curl --cacert root.crt <service_url>
$ curl --cacert root.crt <service_url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例命令
curl --cacert root.crt https://hello-default.apps.openshift.example.com
$ curl --cacert root.crt https://hello-default.apps.openshift.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Hello Openshift!
Hello Openshift!Copy to Clipboard Copied! Toggle word wrap Toggle overflow