1.5. 在启用了 Kourier 时将 Service Mesh 与 OpenShift Serverless 集成
即使已经启用了 Kourier,您也可以在 OpenShift Serverless 中使用 Service Mesh。如果您已在启用了 Kourier 的情况下安装了 Knative Serving,但决定在以后添加 Service Mesh 集成,这个过程可能会很有用。
先决条件
- 在 OpenShift Container Platform 上具有集群管理员权限,或在 Red Hat OpenShift Service on AWS 或 OpenShift Dedicated 上具有集群或专用管理员权限。
- 您已创建了一个项目,或者具有适当的角色和权限访问项目,以创建应用程序和其他工作负载。
-
安装 OpenShift CLI (
oc
) 。 - 在集群上安装 OpenShift Serverless Operator 和 Knative Serving。
- 安装 Red Hat OpenShift Service Mesh。带有 Service Mesh 和 Kourier 的 OpenShift Serverless 支持与 Red Hat OpenShift Service Mesh 1.x 和 2.x 版本搭配使用。
流程
将您要与 Service Mesh 集成的命名空间作为成员添加到
ServiceMeshMemberRoll
对象中:apiVersion: maistra.io/v1 kind: ServiceMeshMemberRoll metadata: name: default namespace: istio-system spec: members: - <namespace> 1 ...
- 1
- 要与 Service Mesh 集成的命名空间列表。
应用
ServiceMeshMemberRoll
资源:$ oc apply -f <filename>
创建允许 Knative 系统 Pod 到 Knative 服务流量的网络策略:
对于您要与 Service Mesh 集成的每个命名空间,创建一个
NetworkPolicy
资源:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-from-serving-system-namespace namespace: <namespace> 1 spec: ingress: - from: - namespaceSelector: matchLabels: knative.openshift.io/part-of: "openshift-serverless" podSelector: {} policyTypes: - Ingress ...
- 1
- 添加您要与 Service Mesh 集成的命名空间。
注意knative.openshift.io/part-of: "openshift-serverless"
标签添加到 OpenShift Serverless 1.22.0 中。如果使用 OpenShift Serverless 1.21.1 或更早版本,请将knative.openshift.io/part-of
标签添加到knative-serving
和knative-serving-ingress
命名空间。将标签添加到
knative-serving
命名空间:$ oc label namespace knative-serving knative.openshift.io/part-of=openshift-serverless
将标签添加到
knative-serving-ingress
命名空间:$ oc label namespace knative-serving-ingress knative.openshift.io/part-of=openshift-serverless
应用
NetworkPolicy
资源:$ oc apply -f <filename>