2.7. 关于 Istio 高可用性


在高可用性(HA)模式下运行 Istio control plane 可防止单点故障,并确保即使 istiod pod 失败,持续网格操作。通过使用 HA,如果一个 istiod pod 不可用,另一个 pod 将继续管理和配置 Istio 数据平面,从而防止服务中断或中断。HA 通过分发 control plane 工作负载来提供可扩展性,启用安全升级,支持灾难恢复操作,并防止区域范围内的网格中断。

系统管理员可以通过两种方式为 Istio 部署配置 HA:

  • 定义静态副本数 :此方法涉及设置固定的 istiod pod 数量,从而提供一致的冗余级别。
  • 使用自动扩展 :此方法根据资源利用率或自定义指标动态调整 istiod pod 的数量,为影响工作负载提供更有效的资源消耗。

2.7.1. 使用自动扩展配置 Istio HA

在高可用性(HA)模式中配置 Istio control plane,以防止单点故障,即使其中一个 istiod pod 失败,也确保持续网格操作。自动扩展定义了可以操作的 Istio control plane pod 的最小和最大数量。OpenShift Container Platform 使用这些值根据资源利用率(如 CPU 或内存)来缩放操作中的 control plane 数量,以有效地响应网格中不同工作负载和整体流量模式。

先决条件

  • 以具有 cluster-admin 角色的用户身份登录到 OpenShift Container Platform Web 控制台。
  • 已安装 Red Hat OpenShift Service Mesh Operator。
  • 您已部署了 Istio 资源。

流程

  1. 在 OpenShift Container Platform Web 控制台中,点 Installed Operators
  2. 点 Red Hat OpenShift Service Mesh 3 Operator。
  3. Istio
  4. 点 Istio 安装的名称。例如,默认
  5. YAML
  6. 修改类似以下示例的 Istio 自定义资源(CR):

    配置示例

    apiVersion: sailoperator.io/v1
    kind: Istio
    metadata:
      name: default
    spec:
      namespace: istio-system
      values:
        pilot:
          autoscaleMin: 2 
    1
    
          autoscaleMax: 5 
    2
    
          cpu:
            targetAverageUtilization: 80 
    3
    
          memory:
            targetAverageUtilization: 80 
    4
    Copy to Clipboard Toggle word wrap

    1
    指定始终运行的最小 Istio control plane 副本数量。
    2
    指定 Istio control plane 副本的最大数量,允许根据负载进行扩展。要支持 HA,必须至少有两个副本。
    3
    指定自动扩展到 80% 的目标 CPU 利用率。如果平均 CPU 使用率超过这个阈值,则 Horizontal Pod Autoscaler (HPA)会自动增加副本数。
    4
    指定自动扩展到 80% 的目标内存利用率。如果平均内存用量超过这个阈值,HPA 会自动增加副本数量。

验证

  • 运行以下命令,验证 Istio 控制 pod 的状态:

    $ oc get pods -n istio-system -l app=istiod
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                      READY   STATUS    RESTARTS   AGE
    istiod-7c7b6564c9-nwhsg   1/1     Running   0          70s
    istiod-7c7b6564c9-xkmsl   1/1     Running   0          85s
    Copy to Clipboard Toggle word wrap

    两个 istiod pod 正在运行。两个 pod,对 HA control plane 的最低要求,表示已放置基本的 HA 设置。

2.7.1.1. Service Mesh HA 自动扩展模式的 API 设置

在使用自动扩展为高可用性(HA)配置服务网格时,使用以下 istio 自定义资源定义(CRD)参数。

Expand
表 2.1. HA API 参数
参数描述

autoScaleMin

为 istio 部署定义最少的 istiod pod 数量。每个 pod 包含一个 Istio control plane 实例。

OpenShift 仅在为 Istio 部署启用了 Horizontal Pod Autoscaler (HPA)时使用此参数。这是默认的行为。

autoScaleMax

为 Istio 部署定义 istiod pod 的最大数量。每个 pod 包含一个 Istio control plane 实例。

要使 OpenShift 根据负载自动扩展 istiod pod 的数量,您必须将此参数设置为大于您为 autoScaleMin 参数定义的值。

您还必须配置指标,以便自动扩展正常工作。如果没有配置指标,自动扩展不会扩展或缩减。

OpenShift 仅在为 Istio 部署启用 Horizontal Pod Autoscaler (HPA)时使用此参数。这是默认的行为。

cpu.targetAverageUtilization

定义 istiod pod 的目标 CPU 使用率。如果平均 CPU 用量超过此参数定义的阈值,HPA 会自动增加副本 pod 的数量。

memory.targetAverageUtilization

定义 istiod pod 的目标内存使用率。如果平均内存用量超过此参数定义的阈值,HPA 会自动增加副本 pod 的数量。

行为

您可以使用 behavior 字段定义 OpenShift 用来扩展或缩减 Istio 资源的额外策略。

如需更多信息,请参阅配置 扩展行为

2.7.2. 使用副本数配置 Istio HA

在高可用性(HA)模式中配置 Istio control plane,以防止单点故障,即使其中一个 istiod pod 失败,也确保持续网格操作。副本数定义了可操作的 Istio control plane pod 的固定数量。对于 control plane 工作负载相对稳定或可预测的网格环境,或者您希望手动扩展 istiod pod,请使用副本数。

先决条件

  • 以具有 cluster-admin 角色的用户身份登录到 OpenShift Container Platform Web 控制台。
  • 已安装 Red Hat OpenShift Service Mesh Operator。
  • 您已部署了 Istio 资源。

流程

  1. 运行以下命令来获取 Istio 资源的名称:

    $ oc get istio -n istio-sytem
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME      REVISIONS   READY   IN USE   ACTIVE REVISION   STATUS    VERSION   AGE
    default   1           1       0        default           Healthy   v1.24.6   24m
    Copy to Clipboard Toggle word wrap

    Istio 资源的名称 是默认的

  2. 运行以下命令,通过添加 autoscaleEnabledreplicaCount 参数来更新 Istio 自定义资源(CR):

    $ oc patch istio default -n istio-system --type merge -p '
    spec:
      values:
        pilot:
          autoscaleEnabled: false 
    1
    
          replicaCount: 2 
    2
    
    '
    Copy to Clipboard Toggle word wrap
    1
    指定禁用自动扩展的设置,并确保副本数保持固定。
    2
    指定 Istio control plane 副本数。要支持 HA,必须至少有两个副本。

验证

  1. 运行以下命令,验证 Istio 控制 pod 的状态:

    $ oc get pods -n istio-system -l app=istiod
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                      READY   STATUS    RESTARTS   AGE
    istiod-7c7b6564c9-nwhsg   1/1     Running   0          70s
    istiod-7c7b6564c9-xkmsl   1/1     Running   0          85s
    Copy to Clipboard Toggle word wrap

    两个 istiod pod 正在运行,这是 HA Istio control plane 的最低要求,并表示基本 HA 设置已就位。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat