搜索

1.8. 创建 ServiceMeshControlPlane

download PDF

您可以使用 OpenShift Container Platform Web 控制台或使用 oc 客户端工具从命令行部署 ServiceMeshControlPlane(SMCP)的基本安装。

注意

这一基本安装根据默认的 OpenShift 设置进行配置,不并是针对生产环境用途而设计的。使用这个默认安装来验证安装,然后为您的环境配置 ServiceMeshControlPlane

注意

Red Hat OpenShift Service on AWS(ROSA)会对您可以创建资源的位置有额外的限制,这会导致默认部署无法正常工作。在 ROSA 环境中部署 SMCP 前,请参阅在 AWS 上安装 Red Hat OpenShift Service Mesh 以了解额外的要求。

注意

Service Mesh 文档使用 istio-system 作为示例项目,但您可以将服务网格部署到任何项目中。

1.8.1. 从 web 控制台部署 Service Mesh control plane

您可以使用 Web 控制台部署基本 ServiceMeshControlPlane。在本例中,istio-system 是 Service Mesh control plane 项目的名称。

先决条件

  • 必须安装 Red Hat OpenShift Service Mesh Operator。
  • 具有 cluster-admin 角色的帐户。

流程

  1. 以具有 cluster-admin 角色的用户身份登录到 OpenShift Container Platform web 控制台。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有 dedicated-admin 角色的帐户。
  2. 创建一个名为 istio-system 的项目。

    1. 浏览至 Home Project
    2. 点击 Create Project
    3. Name 字段中输入 istio-systemServiceMeshControlPlane 资源必须安装在独立于您的微服务和 Operator 的项目中。

      这些步骤使用 istio-system 作为示例,但您可以在任何项目中部署 Service Mesh control plane,只要它与包含您的服务的项目分开。

    4. Create
  3. 导航到 Operators Installed Operators
  4. 点 Red Hat OpenShift Service Mesh Operator,然后点 Istio Service Mesh Control Plane
  5. Istio Service Mesh Control Plane 选项卡中,点 Create ServiceMeshControlPlane
  6. Create ServiceMeshControlPlane 页面中,接受默认的 Service Mesh control plane 版本,以利用该产品的最新版本中提供的功能。control plane 的版本决定了与 Operator 版本无关的可用功能。

    您可以在以后配置 ServiceMeshControlPlane 设置。如需更多信息,请参阅配置 Red Hat OpenShift Service Mesh。

    1. Create。Operator 根据您的配置参数创建 pod、服务和 Service Mesh control plane 组件。
  7. 要验证 control plane 是否已正确安装,请点击 Istio Service Mesh Control Plane 标签页。

    1. 点新的 control plane 的名称。
    2. Resources 标签页来查看由 Operator 创建并配置的 Red Hat OpenShift Service Mesh control plane 资源。

1.8.2. 使用 CLI 部署 Service Mesh control plane

您可以使用命令行部署基本的 ServiceMeshControlPlane

先决条件

  • 必须安装 Red Hat OpenShift Service Mesh Operator。
  • 访问 OpenShift CLI(oc)。

流程

  1. 以具有 cluster-admin 角色的用户身份登录 OpenShift Container Platform CLI。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有 dedicated-admin 角色的帐户。

    $ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
  2. 创建一个名为 istio-system 的项目。

    $ oc new-project istio-system
  3. 使用以下示例,创建一个名为 istio-installation.yamlServiceMeshControlPlane 文件。Service Mesh control plane 的版本决定了与 Operator 版本无关的可用功能。

    版本 2.2 istio-installation.yaml 示例

    apiVersion: maistra.io/v2
    kind: ServiceMeshControlPlane
    metadata:
      name: basic
      namespace: istio-system
    spec:
      version: v2.2
      tracing:
        type: Jaeger
        sampling: 10000
      addons:
        jaeger:
          name: jaeger
          install:
            storage:
              type: Memory
        kiali:
          enabled: true
          name: kiali
        grafana:
          enabled: true

  4. 运行以下命令来部署 Service Mesh control plane,其中 <istio_installation.yaml> 包含到您的文件的完整路径。

    $ oc create -n istio-system -f <istio_installation.yaml>
  5. 要观察 pod 部署的进度,请运行以下命令:

    $ oc get pods -n istio-system -w

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

    NAME                                   READY   STATUS    RESTARTS   AGE
    grafana-b4d59bd7-mrgbr                 2/2     Running   0          65m
    istio-egressgateway-678dc97b4c-wrjkp   1/1     Running   0          108s
    istio-ingressgateway-b45c9d54d-4qg6n   1/1     Running   0          108s
    istiod-basic-55d78bbbcd-j5556          1/1     Running   0          108s
    jaeger-67c75bd6dc-jv6k6                2/2     Running   0          65m
    kiali-6476c7656c-x5msp                 1/1     Running   0          43m
    prometheus-58954b8d6b-m5std            2/2     Running   0          66m
    wasm-cacher-basic-8c986c75-vj2cd       1/1     Running   0          65m

1.8.3. 使用 CLI 验证 SMCP 安装

您可以从命令行验证 ServiceMeshControlPlane 创建。

流程

  1. 以具有 cluster-admin 角色的用户身份登录 OpenShift Container Platform CLI。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有 dedicated-admin 角色的帐户。

    $ oc login https://<HOSTNAME>:6443
  2. 运行以下命令,以验证 Service Mesh control plane 安装,其中 istio-system 是安装 Service Mesh control plane 的命名空间。

    $ oc get smcp -n istio-system

    STATUS 列是 ComponentsReady 时,安装成功完成。

    NAME    READY   STATUS            PROFILES      VERSION   AGE
    basic   10/10   ComponentsReady   ["default"]   2.1.1     66m

1.8.4. 使用 Kiali 验证 SMCP 安装

您可以使用 Kiali 控制台验证 Service Mesh 安装。Kiali 控制台提供了一种方式来验证您的 Service Mesh 组件是否已正确部署和配置。

流程

  1. 以具有 cluster-admin 权限的用户身份登录到 OpenShift Container Platform web 控制台。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有 dedicated-admin 角色的帐户。
  2. 进入 Networking Routes
  3. Routes 页面中,从 Namespace 菜单中选择 Service Mesh control plane 项目,如 istio-system

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

  4. 如果需要,使用过滤器查找 Kiali 控制台的路由。单击路由 位置 以启动控制台。
  5. 单击 Log In With OpenShift

    第一次登录到 Kiali 控制台时,您会看到 Overview 页面,它会显示服务网格中您有权查看的所有命名空间。当 Overview 页中显示多个命名空间,Kiali 会首先显示具有健康或验证问题的命名空间。

    图 1.1. Kiali Overview 页

    Kiali Overview 页显示 istio-system

    每个命名空间的 tile 会显示标签数量、Istio 配置健康、和 应用程序 健康状态的数量,以及命名空间的流量。如果您验证了控制台安装,且命名空间还没有添加到网格中,则可能无法显示 istio-system 以外的任何数据。

  6. Kiali 有四个仪表板,专门用于安装了 Service Mesh control plane 的命名空间。要查看这些仪表板,请点击 control plane 命名空间的标题 kebabOptions 菜单,如 istio-system,然后选择以下选项之一:

    • Istio Mesh Dashboard
    • Istio Control Plane Dashboard
    • Istio Performance Dashboard
    • Istio Wasm Exetension Dashboard

      图 1.2. Grafana Istio Control Plane Dashboard

      Istio Control Plane Dashboard 显示 bookinfo 示例项目的数据

      Kiali 还会安装两个额外的 Grafana 仪表板,它们可从 Grafana Home 页面获得:

    • Istio Workload Dashboard
    • Istio Service Dashboard
  7. 要查看 Service Mesh control plane 节点,点 Graph 页面,从菜单中选择安装 ServiceMeshControlPlane命名空间,如 istio-system

    1. 如有必要,请单击 Display idle nodes
    2. 要了解更多有关 Graph 页面的信息,请点击 Graph tour 链接。
    3. 要查看网格拓扑,请从 Namespace 菜单中从 Service Mesh Member Roll 中选择一个或多个附加命名空间。
  8. 要查看 istio-system 命名空间中的应用程序列表,请点击 Applications 页面。Kiali 显示应用程序的健康状况。

    1. 将鼠标指针悬停在信息图标上,以查看 Details 列中记下的任何其他信息。
  9. 要在 istio-system 命名空间中查看工作负载列表,请点击 Workloads 页面。Kiali 显示工作负载的运行状况。

    1. 将鼠标指针悬停在信息图标上,以查看 Details 列中记下的任何其他信息。
  10. 要查看 istio-system 命名空间中的服务列表,点 Services 页面。Kiali 显示服务和配置的健康状态。

    1. 将鼠标指针悬停在信息图标上,以查看 Details 列中记下的任何其他信息。
  11. 要查看 istio-system 命名空间中的 Istio Configuration 对象列表,点 Istio Config 页面。Kiali 显示配置的健康状况。

    1. 如果出现配置错误,点行,Kiali 会打开配置文件并突出显示错误。

1.8.5. Installing on Red Hat OpenShift Service on AWS (ROSA)

从 2.2 版本开始,Red Hat OpenShift Service Mesh 支持在 AWS 上的 Red Hat OpenShift Service(ROSA)上安装。本节记录了在这个平台上安装 Service Mesh 时的额外要求。

1.8.5.1. 安装位置

在安装 Red Hat OpenShift Service Mesh 并创建 ServiceMeshControlPlane 时,您必须创建一个新命名空间,如 istio-system

1.8.5.2. 所需的 Service Mesh control plane 配置

ServiceMeshControlPlane 文件中的默认配置无法在 ROSA 集群中工作。在 AWS 上的 Red Hat OpenShift Service 上安装时,您必须修改默认的 SMCP 并设置 spec.security.identity.type=ThirdParty

ROSA 的 ServiceMeshControlPlane 资源示例

apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
  name: basic
  namespace: istio-system
spec:
  version: v2.2
  security:
    identity:
      type: ThirdParty  #required setting for ROSA
  tracing:
    type: Jaeger
    sampling: 10000
  policy:
    type: Istiod
  addons:
    grafana:
      enabled: true
    jaeger:
      install:
        storage:
          type: Memory
    kiali:
      enabled: true
    prometheus:
      enabled: true
  telemetry:
    type: Istiod

1.8.5.3. 对 Kiali 配置的限制

Red Hat OpenShift Service on AWS 对创建资源并不允许在 Red Hat managed 命名空间中创建 Kiali 资源方面存在额外的限制。

这意味着,在 ROSA 集群中不允许使用 spec.deployment.access_namespaces 的以下通用设置:

  • ['**'] (所有命名空间)
  • default
  • codeready-*
  • openshift-*
  • redhat-*

验证错误消息提供了所有受限命名空间的完整列表。

ROSA 的 Kiali 资源示例

apiVersion: kiali.io/v1alpha1
kind: Kiali
metadata:
  name: kiali
  namespace: istio-system
spec:
  auth:
    strategy: openshift
  deployment:
    accessible_namespaces:   #restricted setting for ROSA
      - istio-system
    image_pull_policy: ''
    ingress_enabled: true
    namespace: istio-system

1.8.6. 其他资源

Red Hat OpenShift Service Mesh 支持集群中的多个独立 control plane。您可以使用 ServiceMeshControlPlane 配置集创建可重复使用的配置。如需更多信息,请参阅创建 control plane 配置集

1.8.7. 后续步骤

创建一个 ServiceMeshMemberRoll 资源来指定与 Service Mesh 关联的命名空间。如需更多信息,请参阅在服务网格中添加服务

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.