使用副本数配置 Istio HA

通过固定静态副本数为 Istio 控制平面启用 High Availability (HA),确保网格保持可用,并在 istiod pod 之间提供固定级别的冗余。

NOTE

静态副本数会固定 Istio 控制平面的规模。当控制平面负载稳定或可预测时,或者您希望手动扩展 istiod 而不是依赖自动扩展时,此方法非常适用。

前提条件

  • 您已作为具有 cluster-admin 角色的用户登录 Alauda Container Platform Web 控制台,或者已以集群管理员身份建立活动的 ACP CLI(kubectl)会话。
  • 已安装 Alauda Service Mesh v2 Operator。
  • 已部署 Istio 资源。

通过 Web 控制台 配置

操作步骤

  1. 在 Alauda Container Platform Web 控制台中,导航至 Administrator

  2. 选择 Marketplace > OperatorHub

  3. 搜索 Alauda Service Mesh v2

  4. 找到 Alauda Service Mesh v2,然后单击将其选中。

  5. 单击 All Instances 选项卡。

  6. Filter by instance type 下拉列表中,选择 Istio

  7. 单击 Istio 安装的名称,例如 default

  8. 单击 YAML 选项卡。

  9. 更新 Istio 自定义资源(CR),使其类似于以下示例:

    apiVersion: sailoperator.io/v1
    kind: Istio
    metadata:
      name: default
    spec:
      namespace: istio-system
      values:
        pilot:
          autoscaleEnabled: false
          replicaCount: 2
    1. spec.values.pilot.autoscaleEnabled 设置为 false 可关闭自动扩展,使副本数保持为您定义的固定值。
    2. spec.values.pilot.replicaCount 设置 Istio 控制平面副本的固定数量。为满足 HA 要求,此值必须至少为 2

通过 CLI 配置

操作步骤

  1. 获取 Istio 资源的名称:

    kubectl get istio -n istio-system

    示例输出

    NAME      NAMESPACE      PROFILE   REVISIONS   READY   IN USE   ACTIVE REVISION   STATUS    VERSION   AGE
    default   istio-system             1           1       1        default           Healthy   v1.30.4   24m

    Istio 资源的名称为 default

  2. 修补 Istio 自定义资源(CR),以禁用自动扩展并设置固定的副本数:

    kubectl patch istio default -n istio-system --type merge -p '
    spec:
      values:
        pilot:
          autoscaleEnabled: false
          replicaCount: 2
    '

    有关这些设置的字段说明,请参阅通过 Web 控制台配置

验证

检查 Istio 控制平面 pod 的状态:

kubectl get pods -n istio-system -l app=istiod

示例输出

NAME                      READY   STATUS    RESTARTS   AGE
istiod-6b8d64c946-2dq2k   1/1     Running   0          28m
istiod-6b8d64c946-skg4v   1/1     Running   0          35s

两个 istiod pod 正在运行,这是 HA Istio 控制平面所需的最低数量,表明基本的 HA 设置已就绪。