Istio 高可用性

以高可用性(HA)模式运行 Istio 控制平面可消除单点故障,并在 istiod Pod 变得不健康时保持网格持续运行、不间断。

启用 HA 后,单个 istiod Pod 的故障不会中断流量管理或数据平面配置:其余副本会继续为网格提供服务,从而避免宕机并减少面向用户的影响。HA 还会将控制平面工作负载分布到多个副本上,使控制平面升级更平滑,支持灾难恢复场景,并为区域级故障提供保护。

集群管理员可以通过以下任一方式为 Istio 部署启用 HA:

  • 静态副本数:将部署固定为一定数量的 istiod Pod,以维持可预测的冗余级别。
  • 自动扩缩容:让 Horizontal Pod Autoscaler(HPA)根据资源使用情况或自定义指标自动调整 istiod Pod 的数量,这适用于负载变化较大的工作负载。

单节点集群的注意事项

对于单节点集群,务必要禁用默认的 Pod Disruption Budget(PDB),以避免在节点操作(例如 draining)或 HA 模式下扩缩容时出现问题。你可以通过将以下配置添加到 Istio 资源中来实现:

apiVersion: sailoperator.io/v1
kind: Istio
metadata:
  name: default
spec:
  namespace: istio-system
  values:
    global:
      defaultPodDisruptionBudget:
        # disable default Pod Disruption Budget
        enabled: false
  1. spec.values.global.defaultPodDisruptionBudget.enabled: false 会禁用 Istiod 的默认 Pod Disruption Budget。在单节点集群中,PDB 可能会阻止诸如节点 drain 或 Pod 驱逐之类的操作,因为它会防止可用 Istiod 副本数量低于 PDB 的最小期望值。禁用它可确保在这种特定拓扑下顺利执行操作。