3.2. 使用集群范围的部署模型运行 Red Hat OpenShift Service Mesh 2.6 和 Red Hat OpenShift Service Mesh 3


如果您要在集群范围的部署模型中从 Red Hat OpenShift Service Mesh 2.6 进行迁移,您可以在一个集群中使用 OpenShift Service Mesh 2.6 并行运行 OpenShift Service Mesh 2.6,而无需相互干扰。

在 OpenShift Service Mesh 2.6 中,您可以在 spec.mode 下从 ServiceMeshControlPlane 检查部署模型:

ServiceMeshControlPlane yaml 示例

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
spec:
  mode: ClusterWide

为了防止在使用 OpenShift Service Mesh 2.6 集群范围的部署模型时与 OpenShift Service Mesh 3.0 冲突,您需要配置 ServiceMeshControlPlane 资源,将命名空间限制为只属于(SMProduct) 2.6。

先决条件

  • 运行 OpenShift Container Platform 4.14 或更高版本。
  • 运行 OpenShift Service Mesh 2.6。

    重要

    如果没有运行 OpenShift Service Mesh 2.6,您必须按照以下步骤升级到 2.6。要升级到 OpenShift Service Mesh 版本到 2.6,请参阅升级 Service Mesh 2.x

流程

  1. 配置 discoverySelectors,并在 OpenShift Service Mesh 2.6 ServiceMeshControlPlane 自定义资源(CR)中将 pilot 容器上的 ENABLE_ENHANCED_RESOURCE_SCOPING 环境变量设置为 true

    ServiceMeshControlPlane CR 示例

    apiVersion: maistra.io/v2
    kind: ServiceMeshControlPlane
    metadata:
      name: basic
      namespace: istio-system
    spec:
      version: v2.6
      mode: ClusterWide
      meshConfig:
        discoverySelectors:
          - matchExpressions:
            - key: maistra.io/member-of
              operator: Exists
      runtime:
        components:
          pilot:
            container:
              env:
                ENABLE_ENHANCED_RESOURCE_SCOPING: 'true'

  2. 安装 OpenShift Service Mesh 3 Operator。
  3. istio-cni 命名空间中创建 IstioCNI 资源。
  4. 在与 OpenShift Service Mesh 2.6 中 ServiceMeshControlPlane 资源中使用的命名空间不同的命名空间中创建 Istio 资源。这个示例使用 istio-system3 命名空间:

    带有 istio-system3Istio 资源示例

    kind: Istio
    apiVersion: sailoperator.io/v1alpha1
    metadata:
      name: ossm3 1
    spec:
      namespace: istio-system3 2
      values:
        meshConfig:
          discoverySelectors: 3
            - matchExpressions:
              - key: maistra.io/member-of
                operator: DoesNotExist
      updateStrategy:
        type: InPlace
      version: v1.23.0

    1
    不要使用 default 作为名称。
    2
    必须与 OpenShift Service Mesh 2.6 中的 ServiceMeshControlPlane 资源中使用的命名空间不同。这个示例使用 istio-system3 命名空间。
    3
    要忽略 OpenShift Service Mesh 2.6 命名空间,请配置 discoverySelectors 部分,如下所示。所有其他命名空间都将是 OpenShift Service Mesh 3.0 网格的一部分。
  5. 运行以下命令,部署工作负载并使用 istio.io/rev=ossm3 标签标记命名空间:

    $ oc label namespace <namespace-name> istio.io/rev=ossm3
    注意

    如果您在 OpenShift Service Mesh 2.6 中的 ServiceMeshControlPlane 资源中更改了 ServiceMeshMemberRoll 中的 spec.memberSelectors,请为 OpenShift Service Mesh 3.0 工作负载命名空间使用 istio-injection=enabled 标签。

  6. 运行以下命令,确认应用程序工作负载由其对应的 control plane 管理:

    $ istioctl ps -i istio-system

    istio-system输出示例

    $ istioctl ps -i istio-system
    NAME                                          CLUSTER        CDS        LDS        EDS        RDS        ECDS         ISTIOD                                          VERSION
    details-v1-7f46897b-88x4l.info            Kubernetes     SYNCED     SYNCED     SYNCED     SYNCED     NOT SENT     istiod-install-istio-system-bd58bdcd5-2htkf     1.20.8
    mongodb-v1-6cf7dc9885-7nlmq.info          Kubernetes     SYNCED     SYNCED     SYNCED     SYNCED     NOT SENT     istiod-install-istio-system-bd58bdcd5-2htkf     1.20.8
    mysqldb-v1-7c4c44b9b4-22b57.info          Kubernetes     SYNCED     SYNCED     SYNCED     SYNCED     NOT SENT     istiod-install-istio-system-bd58bdcd5-2htkf     1.20.8
    productpage-v1-6f9c6589cb-l6rvg.info      Kubernetes     SYNCED     SYNCED     SYNCED     SYNCED     NOT SENT     istiod-install-istio-system-bd58bdcd5-2htkf     1.20.8
    ratings-v1-559b64556-f6b4l.info           Kubernetes     SYNCED     SYNCED     SYNCED     SYNCED     NOT SENT     istiod-install-istio-system-bd58bdcd5-2htkf     1.20.8
    ratings-v2-8ddc4d65c-bztrg.info           Kubernetes     SYNCED     SYNCED     SYNCED     SYNCED     NOT SENT     istiod-install-istio-system-bd58bdcd5-2htkf     1.20.8
    ratings-v2-mysql-cbc957476-m5j7w.info     Kubernetes     SYNCED     SYNCED     SYNCED     SYNCED     NOT SENT     istiod-install-istio-system-bd58bdcd5-2htkf     1.20.8
    reviews-v1-847fb7c54d-7dwt7.info          Kubernetes     SYNCED     SYNCED     SYNCED     SYNCED     NOT SENT     istiod-install-istio-system-bd58bdcd5-2htkf     1.20.8
    reviews-v2-5c7ff5b77b-5bpc4.info          Kubernetes     SYNCED     SYNCED     SYNCED     SYNCED     NOT SENT     istiod-install-istio-system-bd58bdcd5-2htkf     1.20.8
    reviews-v3-5c5d764c9b-mk8vn.info          Kubernetes     SYNCED     SYNCED     SYNCED     SYNCED     NOT SENT     istiod-install-istio-system-bd58bdcd5-2htkf     1.20.8

    输出 istio-system3示例

    $ istioctl ps -i istio-system3
    NAME                                          CLUSTER        CDS                LDS                EDS                RDS                ECDS        ISTIOD                            VERSION
    details-v1-57f6466bdc-5krth.info2         Kubernetes     SYNCED (2m40s)     SYNCED (2m40s)     SYNCED (2m34s)     SYNCED (2m40s)     IGNORED     istiod-ossm3-5b46b6b8cb-gbjx6     1.23.0
    productpage-v1-5b84ccdddf-f8d9t.info2     Kubernetes     SYNCED (2m39s)     SYNCED (2m39s)     SYNCED (2m34s)     SYNCED (2m39s)     IGNORED     istiod-ossm3-5b46b6b8cb-gbjx6     1.23.0
    ratings-v1-fb764cb99-kx2dr.info2          Kubernetes     SYNCED (2m40s)     SYNCED (2m40s)     SYNCED (2m34s)     SYNCED (2m40s)     IGNORED     istiod-ossm3-5b46b6b8cb-gbjx6     1.23.0
    reviews-v1-8bd5549cf-xqqmd.info2          Kubernetes     SYNCED (2m40s)     SYNCED (2m40s)     SYNCED (2m34s)     SYNCED (2m40s)     IGNORED     istiod-ossm3-5b46b6b8cb-gbjx6     1.23.0
    reviews-v2-7f7cc8bf5c-5rvln.info2         Kubernetes     SYNCED (2m40s)     SYNCED (2m40s)     SYNCED (2m34s)     SYNCED (2m40s)     IGNORED     istiod-ossm3-5b46b6b8cb-gbjx6     1.23.0
    reviews-v3-84f674b88c-ftcqg.info2         Kubernetes     SYNCED (2m40s)     SYNCED (2m40s)     SYNCED (2m34s)     SYNCED (2m40s)     IGNORED     istiod-ossm3-5b46b6b8cb-gbjx6     1.23.0

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.