1.7. 安装 Operator

要安装 Red Hat OpenShift Service Mesh,首先在 OpenShift Container Platform 上安装所需的 Operator,然后创建一个 ServiceMeshControlPlane 资源来部署 control plane。

注意

这一基本安装根据默认的 OpenShift 设置进行配置,不并是针对生产环境用途而设计的。  使用此默认安装验证您的安装,然后为特定环境配置服务网格。

前提条件

以下步骤演示了如何在 OpenShift Container Platform 上安装 Red Hat OpenShift Service Mesh 的基本实例。

1.7.1. Operator 概述

Red Hat OpenShift Service Mesh 需要以下四个 Operator:

  • OpenShift Elasticsearch -(可选)为使用分布式追踪平台 (Jaeger) 进行追踪和日志记录提供数据库存储。它基于开源 Elasticsearch 项目。
  • Red Hat OpenShift distributed tracing 平台 (Jaeger) - 提供分布式追踪以监控复杂分布式系统中的事务并进行故障排除。它基于开源 Jaeger 项目。
  • Kiali Operator (由红帽提供) - 为您的服务网格提供可观察性。您可以在单个控制台中查看配置、监控流量和分析 trace。它基于开源 Kiali 项目。
  • Red Hat OpenShift Service Mesh - 允许您连接、保护、控制和观察组成应用程序的微服务。Service Mesh Operator 定义并监控管理 ServiceMeshControlPlane 资源,这个资源用来管理 Service Mesh 组件的部署、更新和删除操作。它基于开源 Istio 项目。
警告

不要安装 Operators 的 Community 版本。不支持社区 Operator。

1.7.2. 安装 Operator

要安装 Red Hat OpenShift Service Mesh,请按照以下顺序安装 Operator。为每个 Operator 重复上述步骤。

  • OpenShift Elasticsearch
  • Red Hat OpenShift distributed tracing Platform (Jaeger)
  • 红帽提供的 Kiali Operator
  • Red Hat OpenShift Service Mesh
注意

如果您已经安装了 OpenShift Elasticsearch Operator 作为 OpenShift Logging 的一部分,则不需要再次安装 OpenShift Elasticsearch Operator。Red Hat OpenShift distributed tracing Platform (Jaeger) Operator 将使用已安装的 OpenShift Elasticsearch Operator 创建 Elasticsearch 实例。

流程

  1. 以具有 cluster-admin 角色的用户身份登录到 OpenShift Container Platform web 控制台。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有 dedicated-admin 角色的帐户。
  2. 在 OpenShift Container Platform Web 控制台中,点击 OperatorsOperatorHub
  3. 在过滤器框中输入 Operator 名称,再选择 Operator 的 Red Hat 版本。不支持 Operator 的社区版本。
  4. Install
  5. 在每个 Operator 的 Install Operator 页面中,接受默认设置。
  6. Install。等待 Operator 安装完毕,然后为列表中的下一个 Operator 重复这些步骤。

    • OpenShift Elasticsearch Operator 安装在 openshift-operators-redhat 命名空间中,并可用于集群中的所有命名空间。
    • Red Hat OpenShift distributed tracing 平台 (Jaeger) 安装在 openshift-distributed-tracing 命名空间中,可用于集群中的所有命名空间。
    • 红帽提供的 Kiali Operator 安装在 openshift-operators 命名空间中,并可用于集群中的所有命名空间。
    • Red Hat OpenShift Service Mesh Operator 安装在 openshift-operators 命名空间中,并可用于集群中的所有命名空间。

验证

  • 安装完所有四个 Operator 后,点 OperatorsInstalled Operators 来验证是否安装了 Operator。

1.7.3. 将 Service Mesh Operator 配置为在基础架构节点上运行

只有在 Service Mesh Operator 在基础架构节点上运行时才会执行此任务。

如果 Operator 将在 worker 节点上运行,请跳过此任务。

前提条件

  • 必须安装 Service Mesh Operator。
  • 组成部署的节点之一必须是基础架构节点。如需更多信息,请参阅"创建基础架构机器集"。

流程

  1. 列出命名空间中安装的 Operator:

    $ oc -n openshift-operators get subscriptions
  2. 编辑 Service Mesh Operator Subscription 资源,以指定 Operator 应该运行的位置:

    $ oc -n openshift-operators edit subscription <name> 1
    1
    <name> 代表 Subscription 资源的名称。Subscription 资源的默认名称为 servicemeshoperator
  3. Subscription 资源中将 nodeSelectortolerations 添加到 spec.config 中:

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      labels:
        operators.coreos.com/servicemeshoperator.openshift-operators: ""
      name: servicemeshoperator
      namespace: openshift-operators
    # ...
    spec:
      config:
        nodeSelector: 1
          node-role.kubernetes.io/infra: ""
        tolerations: 2
        - effect: NoSchedule
          key: node-role.kubernetes.io/infra
          value: reserved
        - effect: NoExecute
          key: node-role.kubernetes.io/infra
          value: reserved
    1
    确保 Operator pod 仅调度到基础架构节点上。
    2
    确保基础架构节点接受 pod。

1.7.4. 验证 Service Mesh Operator 在基础架构节点上运行

流程

  • 验证与 Operator pod 关联的节点是否是一个基础架构节点:

    $ oc -n openshift-operators get po -l name=istio-operator -owide

1.7.5. 后续步骤

  • 在部署 Service Mesh control plane 前,Red Hat OpenShift Service Mesh Operator 不会创建 Service Mesh 自定义资源定义 (CRD)。您可以使用 ServiceMeshControlPlane 资源来安装和配置 Service Mesh 组件。如需更多信息,请参阅创建 ServiceMeshControlPlane