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.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Hello Openshift!
Hello Openshift!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow