1.9. 在服务网格中添加服务

一个项目会包含服务;但是,只有在将项目添加到服务网格时服务才可用。

1.9.1. 关于将项目添加到服务网格中

安装 Operator 并创建 ServiceMeshControlPlane 资源后,将一个或多个项目添加到服务网格中。

注意

在 OpenShift Container Platform 中,项目就基本上就是一个带有额外注解的 Kubernetes 命名空间,如可以在项目中使用的用户 ID 范围。通常,OpenShift Container Platform Web 控制台使用术语“项目(project)”,CLI 使用术语”命名空间 (namespace)”,这两个术语所代表的内容基本上是相同的。

您可以使用 OpenShift Container Platform Web 控制台或 CLI 将项目添加到现有服务网格中。将项目添加到服务网格中有三种方法:

  • ServiceMeshMemberRoll 资源中指定项目名称。
  • ServiceMeshMemberRoll 资源的 spec.labelSelectors 字段中配置标签选择器。
  • 在项目中创建 ServiceMeshMember 资源。

如果使用第一个方法,您必须创建 ServiceMeshMemberRoll 资源。

1.9.2. 创建 Red Hat OpenShift Service Mesh member roll

ServiceMeshMemberRoll 列出属于 Service Mesh control plane 的项目。只有 ServiceMeshMemberRoll 中列出的项目会受到 control plane 的影响。在将项目添加到特定 control plane 部署的 member roll 之前,项目不属于服务网格。

您必须在 ServiceMeshControlPlane 所在的同一个项目中创建一个名为 defaultServiceMeshMemberRoll 资源,如 istio-system

1.9.2.1. 从 Web 控制台创建 member roll

您可从 web 控制台在 Service Mesh member roll 中添加一个或多个项目。在本例中,istio-system 是 Service Mesh control plane 项目的名称。

前提条件

  • 已安装并验证的 Red Hat OpenShift Service Mesh Operator。
  • 要添加到服务网格的现存项目列表。

流程

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. 如果您还没有网格服务,或者您从头开始,请为您的应用程序创建一个项目。它必须与安装 Service Mesh control plane 的项目不同。

    1. 浏览至 HomeProject
    2. Name 字段中输入一个名称。
    3. Create
  3. 导航到 OperatorsInstalled Operators
  4. Project 菜单,从列表中选择部署 ServiceMeshControlPlane 资源的项目,如 istio-system
  5. 点 Red Hat OpenShift Service Mesh Operator。
  6. Istio Service Mesh Member Roll 选项卡。
  7. Create ServiceMeshMemberRoll
  8. 单击 Members,然后在 Value 字段中输入项目名称。您可以添加任意数量的项目,但一个项目只能属于一个 ServiceMeshMemberRoll 资源。
  9. Create

1.9.2.2. 通过 CLI 创建 member roll

您可以使用命令行将项目添加到 ServiceMeshMemberRoll 中。

前提条件

  • 已安装并验证的 Red Hat OpenShift Service Mesh Operator。
  • 要添加到服务网格的项目列表。
  • 访问 OpenShift CLI(oc)。

流程

  1. 登录 OpenShift Container Platform CLI。

    $ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
  2. 如果您还没有网格服务,或者您从头开始,请为您的应用程序创建一个项目。它必须与安装 Service Mesh control plane 的项目不同。

    $ oc new-project <your-project>
  3. 要添加项目作为成员,请修改以下示例 YAML:您可以添加任意数量的项目,但一个项目只能属于一个 ServiceMeshMemberRoll 资源。在本例中,istio-system 是 Service Mesh control plane 项目的名称。

    servicemeshmemberroll-default.yaml 示例

    apiVersion: maistra.io/v1
    kind: ServiceMeshMemberRoll
    metadata:
      name: default
      namespace: istio-system
    spec:
      members:
        # a list of projects joined into the service mesh
        - your-project-name
        - another-project-name

  4. 运行以下命令,在 istio-system 命名空间中上传并创建 ServiceMeshMemberRoll 资源。

    $ oc create -n istio-system -f servicemeshmemberroll-default.yaml
  5. 运行以下命令,以验证 ServiceMeshMemberRoll 是否已成功创建。

    $ oc get smmr -n istio-system default

    STATUS 列为 Configured 时,安装成功完成。

1.9.3. 关于使用 ServiceMeshMemberRoll 资源添加项目

使用 ServiceMeshMemberRoll 资源是将项目添加到服务网格的最简单方法。要添加项目,请在 ServiceMeshMemberRoll 资源的 spec.members 字段中指定项目名称。ServiceMeshMemberRoll 资源指定哪个项目由 ServiceMeshControlPlane 资源控制。

使用 'ServiceMeshMemberRoll' 资源镜像添加项目
注意

使用此方法添加项目需要用户具有相关项目中的 update servicemeshmemberrollsupdate pod 特权。

  • 如果您已有要添加到服务网格中的应用程序、工作负载或服务,请查看以下操作:

    • 在 web 控制台中使用 ServiceMeshMemberRoll 资源从网格中添加或删除项目
    • 通过 CLI 使用 ServiceMeshMemberRoll 资源从网格中添加或删除项目
  • 另外,要安装一个名为 Bookinfo 的示例应用程序并将其添加到 ServiceMeshMemberRoll 资源中,请参阅 Bookinfo 示例应用程序教程。

1.9.3.1. 在 web 控制台中使用 ServiceMeshMemberRoll 资源从网格中添加或删除项目

您可以使用 OpenShift Container Platform Web 控制台的 ServiceMeshMemberRoll 资源从网格中添加或删除项目。您可以添加任意数量的项目,但项目只能属于一个网格。

当它对应的 ServiceMeshControlPlane 资源被删除后,ServiceMeshMemberRoll 资源也会被删除。

前提条件

  • 已安装并验证的 Red Hat OpenShift Service Mesh Operator。
  • 现有 ServiceMeshMemberRoll 资源
  • 带有 ServiceMeshMemberRoll 资源的项目名称。
  • 要从网格中添加或删除的项目的名称。

流程

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. 导航到 OperatorsInstalled Operators
  3. Project 菜单,从列表中选择部署了 ServiceMeshControlPlane 资源的项目。例如 istio-system
  4. 点 Red Hat OpenShift Service Mesh Operator。
  5. Istio Service Mesh Member Roll 选项卡。
  6. default 链接。
  7. 点 YAML 标签。
  8. 修改 YAML 以添加项目作为成员(或删除它们来删除现有成员)。您可以添加任意数量的项目,但一个项目只能属于一个 ServiceMeshMemberRoll 资源。

    servicemeshmemberroll-default.yaml 示例

    apiVersion: maistra.io/v1
    kind: ServiceMeshMemberRoll
    metadata:
      name: default
      namespace: istio-system #control plane project
    spec:
      members:
        # a list of projects joined into the service mesh
        - your-project-name
        - another-project-name

  9. Save
  10. Reload

1.9.3.2. 使用 CLI 的 ServiceMeshMemberRoll 资源从网格中添加或删除项目

您可以使用 CLI 的 ServiceMeshMemberRoll 资源将一个或多个项目添加到网格中。您可以添加任意数量的项目,但项目只能属于一个网格。

当它对应的 ServiceMeshControlPlane 资源被删除后,ServiceMeshMemberRoll 资源也会被删除。

前提条件

  • 已安装并验证的 Red Hat OpenShift Service Mesh Operator。
  • 现有 ServiceMeshMemberRoll 资源
  • 带有 ServiceMeshMemberRoll 资源的项目名称。
  • 要从网格中添加或删除的项目的名称。
  • 访问 OpenShift CLI(oc)。

流程

  1. 登录 OpenShift Container Platform CLI。
  2. 编辑 ServiceMeshMemberRoll 资源。

    $ oc edit smmr -n <controlplane-namespace>
  3. 修改 YAML 以添加或删除作为成员的项目。您可以添加任意数量的项目,但一个项目只能属于一个 ServiceMeshMemberRoll 资源。

    servicemeshmemberroll-default.yaml 示例

    apiVersion: maistra.io/v1
    kind: ServiceMeshMemberRoll
    metadata:
      name: default
      namespace: istio-system #control plane project
    spec:
      members:
        # a list of projects joined into the service mesh
        - your-project-name
        - another-project-name

  4. 保存文件并退出编辑器。

1.9.4. 关于使用 ServiceMeshMember 资源添加项目

ServiceMeshMember 资源提供了一种在不修改 ServiceMeshMemberRoll 资源的情况下将项目添加到服务网格的方法。要添加项目,请在您要添加到服务网格的项目中创建 ServiceMeshMember 资源。当 Service Mesh Operator 处理 ServiceMeshMember 对象时,项目会出现在 ServiceMeshMemberRoll 资源的 status.members 列表中。然后,属于项目中的服务对网格提供。

使用 'ServiceMeshMember' 资源镜像添加项目

网格管理员需要为每个网关用户授予引用 ServiceMeshMember 资源中的 ServiceMeshControlPlane 资源的权限。使用这个权限,网格用户可以将项目添加到网格中,即使该用户没有服务网格项目或 ServiceMeshMemberRoll 资源的直接访问权限。如需更多信息,请参阅创建 Red Hat OpenShift Service Mesh 成员。

1.9.4.1. 在 web 控制台中使用 ServiceMeshMember 资源将项目添加到网格中

您可以在 OpenShift Container Platform Web 控制台中使用 ServiceMeshMember 资源将一个或多个项目添加到网格中。

先决条件

  • 已安装 Red Hat OpenShift Service Mesh Operator。
  • 您知道 ServiceMeshControlPlane 资源的名称以及资源所属的项目的名称。
  • 您知道您要添加到网格中的项目名称。
  • 服务网格管理员必须明确授予服务网格的访问权限。管理员可以使用 RoleBindingClusterRoleBinding 为用户分配 mesh-user 角色,为用户授予访问网格的权限。如需更多信息,请参阅创建 Red Hat OpenShift Service Mesh 成员

流程

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. 导航到 OperatorsInstalled Operators
  3. Project 菜单,然后从下拉列表中选择您要添加到网格的项目。例如: istio-system
  4. 点 Red Hat OpenShift Service Mesh Operator。
  5. Istio Service Mesh Member 选项卡。
  6. Create ServiceMeshMember
  7. 接受 ServiceMeshMember 的默认名称。
  8. 点击以展开 ControlPlaneRef
  9. Namespace 字段中,选择 ServiceMeshControlPlane 资源所属的项目。例如: istio-system
  10. Name 字段中输入此命名空间所属的 ServiceMeshControlPlane 资源的名称。例如,basic
  11. Create

验证

  1. 通过以下步骤确认 ServiceMeshMember 资源已创建,并且项目已添加到网格中:

    1. 点资源名称,如 default
    2. 查看屏幕末尾显示的 Conditions 部分。
    3. 确认 ReconciledReady 条件的 StatusTrue

      如果 StatusFalse,请参阅 ReasonMessage 列以了解更多信息。

1.9.4.2. 通过 CLI 使用 ServiceMeshMember 资源将项目添加到网格

您可以通过 CLI 使用 ServiceMeshMember 资源将一个或多个项目添加到网格中。

前提条件

  • 已安装 Red Hat OpenShift Service Mesh Operator。
  • 您知道 ServiceMeshControlPlane 资源的名称及其所属项目的名称。
  • 您知道您要添加到网格中的项目名称。
  • 服务网格管理员必须明确授予服务网格的访问权限。管理员可以使用 RoleBindingClusterRoleBinding 为用户分配 mesh-user 角色,为用户授予访问网格的权限。如需更多信息,请参阅创建 Red Hat OpenShift Service Mesh 成员

流程

  1. 登录 OpenShift Container Platform CLI。
  2. ServiceMeshMember 清单创建 YAML 文件。清单将 my-application 项目添加到由 istio-system 命名空间中部署的 ServiceMeshControlPlane 资源创建的服务网格中:

    apiVersion: maistra.io/v1
    kind: ServiceMeshMember
    metadata:
      name: default
      namespace: my-application
    spec:
      controlPlaneRef:
        namespace: istio-system
        name: basic
  3. 应用 YAML 文件以创建 ServiceMeshMember 资源:

    $ oc apply -f <file-name>

验证

  • 运行以下命令,验证命名空间是否为网格的一部分。确认值 True 出现在 READY 列中。

    $ oc get smm default -n my-application

    输出示例

    NAME      CONTROL PLANE        READY   AGE
    default   istio-system/basic   True    2m11s

  • 另外,查看 ServiceMeshMemberRoll 资源,以确认 my-application 命名空间显示在 ServiceMeshMemberRoll 资源的 status.membersstatus.configuredMembers 字段中。

    $ oc describe smmr default -n istio-system

    输出示例

    Name:         default
    Namespace:    istio-system
    Labels:       <none>
    # ...
    Status:
    # ...
      Configured Members:
        default
        my-application
    # ...
      Members:
        default
        my-application

1.9.5. 关于使用标签选择器添加项目

对于集群范围的部署,您可以使用标签选择器将项目添加到网格中。ServiceMeshMemberRoll 资源中指定的标签选择器可让 Service Mesh Operator 根据命名空间标签向网格添加或删除命名空间。与可以用来指定单个标签选择器的其他标准 OpenShift Container Platform 资源不同,您可以使用 ServiceMeshMemberRoll 资源来指定多个标签选择器。

使用标签选择器镜像添加项目

如果命名空间标签与 ServiceMeshMemberRoll 资源中指定的任何选择器匹配,则命名空间会包含在网格中。

注意

在 OpenShift Container Platform 中,项目就基本上就是一个带有额外注解的 Kubernetes 命名空间,如可以在项目中使用的用户 ID 范围。通常,OpenShift Container Platform Web 控制台使用术语 项目(project),CLI 使用术语 命名空间(namespace),但这两个术语在本质上是相同的。

1.9.5.1. 使用带有 Web 控制台的标签选择器将项目添加到网格中

您可以使用标签选择器通过 OpenShift Container Platform Web 控制台将项目添加到 Service Mesh。

先决条件

  • 已安装 Red Hat OpenShift Service Mesh Operator。
  • 部署有一个现有的 ServiceMeshMemberRoll 资源。
  • cluster-admin 用户身份登录到 OpenShift Container Platform Web 控制台。

流程

  1. 导航到 OperatorsInstalled Operators
  2. Project 菜单,从下拉菜单中选择部署 ServiceMeshMemberRoll 资源的项目。例如:istio-system
  3. 点 Red Hat OpenShift Service Mesh Operator。
  4. Istio Service Mesh Member Roll 选项卡。
  5. Create ServiceMeshMember Roll
  6. 接受 ServiceMeshMemberRoll 的默认名称。
  7. Labels 字段中输入键值对,以定义标识服务网格中要包含哪些命名空间的标签。如果项目命名空间具有选择器指定的标签,则项目命名空间会包含在服务网格中。您不需要同时包含这两个标签。

    例如,输入 mykey=myvalue 包括具有此标签的所有命名空间作为网格的一部分。当选择器标识匹配项时,项目命名空间将添加到服务网格中。

    输入 myotherkey=myothervalue 包括具有此标签的所有命名空间作为网格的一部分。当选择器标识匹配项时,项目命名空间将添加到服务网格中。

  8. Create

1.9.5.2. 使用带有 CLI 的标签选择器将项目添加到网格中

您可以使用标签选择器通过 CLI 将项目添加到 Service Mesh 中。

前提条件

  • 已安装 Red Hat OpenShift Service Mesh Operator。
  • 部署有一个现有的 ServiceMeshMemberRoll 资源。
  • 以'cluster-admin"身份登录到 OpenShift Container Platform。

流程

  1. 登录 OpenShift Container Platform CLI。
  2. 编辑 ServiceMeshMemberRoll 资源。

    $ oc edit smmr default -n istio-system

    您可以将 Service Mesh control plane 部署到任何与包含服务的项目分开的项目。

  3. 修改 YAML 文件,以在 ServiceMeshMemberRoll 资源的 spec.memberSelectors 字段中包含命名空间标签选择器。

    注意

    您还可以使用选择器中的 matchExpressions 字段,而不使用 matchLabels 字段。

    apiVersion: maistra.io/v1
    kind: ServiceMeshMemberRoll
    metadata:
      name: default
      namespace: istio-system
    spec:
      memberSelectors: 1
      - matchLabels: 2
          mykey: myvalue 3
      - matchLabels: 4
          myotherkey: myothervalue 5
    1
    包含用于标识服务网格中包含的项目命名空间的标签选择器。如果项目命名空间具有选择器指定的标签,则项目命名空间会包含在服务网格中。项目命名空间不需要同时包含这两个标签。
    2 3
    使用 mykey=myvalue 标签指定所有命名空间。当选择器标识匹配项时,项目命名空间将添加到服务网格中。
    4 5
    使用 myotherkey=myothervalue 标签指定所有命名空间。当选择器标识匹配项时,项目命名空间将添加到服务网格中。

1.9.6. Bookinfo 示例应用程序

您可以使用 Bookinfo 示例应用程序来测试 OpenShift Container Platform 中的 Red Hat OpenShift Service Mesh 2.5 安装。

Bookinfo 应用程序显示一本书的信息,类似于在线书店的单一目录条目。应用会显示一个页面,其中描述了图书详细信息(ISBN、页数和其他信息)以及图书的评论。

Bookinfo 应用程序由这些微服务组成:

  • productpage 微服务调用 detailsreviews 微服务来产生页面信息。
  • details 微服务包括了书的信息。
  • review 微服务包括了书的评论。它同时还会调用 ratings 微服务。
  • ratings微服务包括了带有对本书的评论信息的评分信息。

reviews 微服务有三个版本:

  • 版本 v1 不调用 ratings 服务。
  • 版本 v2 调用 ratings 服务,并以一到五个黑色星来代表对本书的评分。
  • 版本 v3 调用 ratings 服务,并以一到五个红色星来代表对本书的评分。

1.9.6.1. 安装 Bookinfo 应用程序

本教程介绍了如何创建项目、将 Bookinfo 应用程序部署到该项目并在 Service Mesh 中查看正在运行的应用程序来创建示例应用程序。

先决条件

  • 安装了 OpenShift Container Platform 4.1 或更高版本。
  • 安装了 Red Hat OpenShift Service Mesh 2.5。
  • 访问 OpenShift CLI(oc)。
  • 以'cluster-admin"身份登录到 OpenShift Container Platform。
注意

Bookinfo 示例应用程序不能安装在 IBM Z 和 IBM Power 上。

注意

本节中的命令假设 Service Mesh control plane 项目为 istio-system。如果在另一个命名空间中安装了 control plane,在运行前编辑每个命令。

流程

  1. HomeProjects
  2. 点击 Create Project
  3. Project Name 中输入 info,输入 Display NameDescription,然后点 Create

    • 或者,也可以通过 CLI 运行这个命令来创建 info 项目。

      $ oc new-project info
  4. OperatorsInstalled Operators
  5. Project 菜单,使用 Service Mesh control plane 命名空间。在这个示例中,使用 istio-system
  6. Red Hat OpenShift Service Mesh Operator。
  7. Istio Service Mesh Member Roll 选项卡。

    1. 如果您已经创建了 Istio Service Mesh Member Roll,请名称,然后点击 YAML 标签来打开 YAML 编辑器。
    2. 如果您还没有创建 ServiceMeshMemberRoll,点 Create ServiceMeshMemberRoll
  8. 单击 Members,然后在 Value 字段中输入项目名称。
  9. Create 保存更新的 Service Mesh Member Roll。

    1. 或者,将以下示例保存到 YAML 文件中。

      Bookinfo ServiceMeshMemberRoll 示例 servicemeshmemberroll-default.yaml

      apiVersion: maistra.io/v1
      kind: ServiceMeshMemberRoll
      metadata:
        name: default
      spec:
        members:
        - info

    2. 运行以下命令上传该文件,并在 istio-system 命名空间中创建 ServiceMeshMemberRoll 资源。在本例中,istio-system 是 Service Mesh control plane 项目的名称。

      $ oc create -n istio-system -f servicemeshmemberroll-default.yaml
  10. 运行以下命令,以验证 ServiceMeshMemberRoll 是否已成功创建。

    $ oc get smmr -n istio-system -o wide

    STATUS 列为 Configured 时,安装成功完成。

    NAME      READY   STATUS       AGE   MEMBERS
    default   1/1     Configured   70s   ["info"]
  11. 在 CLI 中,通过应用 bookinfo.yaml 文件在 `info` 项目中部署 Bookinfo:

    $ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.5/samples/bookinfo/platform/kube/bookinfo.yaml

    您应该看到类似如下的输出:

    service/details created
    serviceaccount/info-details created
    deployment.apps/details-v1 created
    service/ratings created
    serviceaccount/info-ratings created
    deployment.apps/ratings-v1 created
    service/reviews created
    serviceaccount/info-reviews created
    deployment.apps/reviews-v1 created
    deployment.apps/reviews-v2 created
    deployment.apps/reviews-v3 created
    service/productpage created
    serviceaccount/info-productpage created
    deployment.apps/productpage-v1 created
  12. 通过应用 info-gateway.yaml 文件创建入站网关 :

    $ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.5/samples/bookinfo/networking/bookinfo-gateway.yaml

    您应该看到类似如下的输出:

    gateway.networking.istio.io/info-gateway created
    virtualservice.networking.istio.io/info created
  13. 设置 GATEWAY_URL 参数的值:

    $ export GATEWAY_URL=$(oc -n istio-system get route istio-ingressgateway -o jsonpath='{.spec.host}')

1.9.6.2. 添加默认目的地规则

在使用 Bookinfo 应用程序前,您必须首先添加默认目的地规则。根据您是否启用了 mutual TLS 验证,预先配置两个 YAML 文件。

流程

  1. 要添加目的地规则,请运行以下命令之一:

    • 如果没有启用 mutual TLS:

      $ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.5/samples/bookinfo/networking/destination-rule-all.yaml
    • 如果启用了 nutual TLS:

      $ oc apply -n info -f https://raw.githubusercontent.com/Maistra/istio/maistra-2.5/samples/bookinfo/networking/destination-rule-all-mtls.yaml

      您应该看到类似如下的输出:

      destinationrule.networking.istio.io/productpage created
      destinationrule.networking.istio.io/reviews created
      destinationrule.networking.istio.io/ratings created
      destinationrule.networking.istio.io/details created

1.9.6.3. 验证 Bookinfo 安装

要确认示例 Bookinfo 应用程序已被成功部署,请执行以下步骤。

前提条件

  • 安装了 Red Hat OpenShift Service Mesh。
  • 完成安装 Bookinfo 示例应用程序的步骤。
  • 以'cluster-admin"身份登录到 OpenShift Container Platform。

通过 CLI 的步骤

  1. 验证所有 pod 是否都与此命令就绪:

    $ oc get pods -n info

    所有容器集的状态都应为 Running。您应该看到类似如下的输出:

    NAME                              READY   STATUS    RESTARTS   AGE
    details-v1-55b869668-jh7hb        2/2     Running   0          12m
    productpage-v1-6fc77ff794-nsl8r   2/2     Running   0          12m
    ratings-v1-7d7d8d8b56-55scn       2/2     Running   0          12m
    reviews-v1-868597db96-bdxgq       2/2     Running   0          12m
    reviews-v2-5b64f47978-cvssp       2/2     Running   0          12m
    reviews-v3-6dfd49b55b-vcwpf       2/2     Running   0          12m
  2. 运行以下命令来检索产品页面的 URL:

    echo "http://$GATEWAY_URL/productpage"
  3. 在网页浏览器中复制并粘贴输出以验证是否已部署了 Bookinfo 产品页面。

来自 Kiali web 控制台的步骤

  1. 获取 Kiali web 控制台的地址。

    1. 登陆到 OpenShift Container Platform Web 控制台。
    2. 进入 NetworkingRoutes
    3. Routes 页面中,从 Namespace 菜单中选择 Service Mesh control plane 项目,如 istio-system

      Location 列显示每个路由的链接地址。

    4. 点 Kiali 的 Location 列中的链接。
    5. 单击 Log In With OpenShift。Kiali Overview 屏幕显示每个项目命名空间的标题。
  2. 在 Kiali 中,点 Graph
  3. Namespace 列表中选择 info,从 Graph Type 列表中选择 App graph。
  4. Display 菜单中选择 Display idle nodes

    这将显示定义的节点,但尚未收到或发送请求。它可以确认应用已正确定义,但未报告任何请求流量。

    Kiali 显示 info 应用程序
    • 使用 Duration 菜单增加时间段,以帮助确保捕获旧的流量。
    • 使用 Refresh Rate 菜单刷新流量频率或更小,或者根本不刷新流量。
  5. ServicesWorkloadsIstio Config 查看 info 组件的列表视图,并确认它们健康。

1.9.6.4. 删除 Bookinfo 应用程序

按照以下步骤删除 Bookinfo 应用程序。

先决条件

  • 安装了 OpenShift Container Platform 4.1 或更高版本。
  • 安装了 Red Hat OpenShift Service Mesh 2.5。
  • 访问 OpenShift CLI(oc)。
1.9.6.4.1. 删除 Bookinfo 项目

流程

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. HomeProjects
  3. info 菜单 kebab ,然后点 Delete Project
  4. 在确认对话框中键入 info,然后点 Delete

    • 或者,您可以使用 CLI 运行这个命令来创建 info 项目。

      $ oc delete project info
1.9.6.4.2. 从 Service Mesh member roll 中删除 Bookinfo 项目

流程

  1. 登陆到 OpenShift Container Platform Web 控制台。
  2. OperatorsInstalled Operators
  3. Project 菜单,从列表中选 istio-system
  4. Red Hat OpenShift Service Mesh Operator 在 Provided APIS 下点 Istio Service Mesh Member Roll 链接。
  5. ServiceMeshMemberRoll 菜单 kebab 并选择 Edit Service Mesh Member Roll
  6. 编辑默认的 Service Mesh Member Roll YAML 并从 members 列表中删除 info

    • 或者,您可以使用 CLI 运行这个命令从 ServiceMeshMemberRoll 中删除 info 项目。在本例中,istio-system 是 Service Mesh control plane 项目的名称。

      $ oc -n istio-system patch --type='json' smmr default -p '[{"op": "remove", "path": "/spec/members", "value":["'"info"'"]}]'
  7. Save 更新 Service Mesh Member Roll。

1.9.7. 后续步骤