使用副本数配置 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 设置已就绪。