6.7.2. 在启用了 Kourier 时将 Service Mesh 与 OpenShift Serverless 集成

先决条件

  • 您已在 OpenShift Container Platform 集群中安装了 OpenShift Serverless Operator。
  • 已安装 Red Hat OpenShift Service Mesh。带有 Service Mesh 和 Kourier 的 OpenShift Serverless 支持与 Red Hat OpenShift Service Mesh 1.x 和 2.x 版本搭配使用。
  • 已安装 Knative Serving。

流程

  1. 将您要与 Service Mesh 集成的命名空间作为成员添加到 ServiceMeshMemberRoll 对象中:

    apiVersion: maistra.io/v1
    kind: ServiceMeshMemberRoll
    metadata:
      name: default
      namespace: istio-system
    spec:
      members:
        - <namespace> 1
    1
    要与 Service Mesh 集成的命名空间列表。
  2. 应用 ServiceMeshMemberRoll 资源:

    $ oc apply -f <filename>
  3. 创建允许 Knative 系统 Pod 到 Knative 服务流量的网络策略:

    1. service.knative.openshift.io/system-namespace=true 标签添加到 knative-serving 命名空间:

      $ oc label namespace knative-serving serving.knative.openshift.io/system-namespace=true
    2. service.knative.openshift.io/system-namespace=true 标签添加到 knative-serving-ingress 命名空间:

      $ oc label namespace knative-serving-ingress serving.knative.openshift.io/system-namespace=true
    3. 对于您要与 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:
                serving.knative.openshift.io/system-namespace: "true"
        podSelector: {}
        policyTypes:
        - Ingress
      1
      添加您要与 Service Mesh 集成的命名空间。
    4. 应用 NetworkPolicy 资源:

      $ oc apply -f <filename>