Istio 高可用性
以高可用性(HA)模式运行 Istio 控制平面可以消除单点故障,并在 istiod Pod 出现异常时保持 mesh 持续运行,不会中断。
启用 HA 后,单个 istiod Pod 的故障不会中断流量管理或数据平面配置:剩余的一个从节点副本会继续为 mesh 提供服务,从而避免服务中断并减少面向用户的影响。HA 还可将控制平面工作负载分布到多个副本上,使控制平面升级更加平滑,支持灾难恢复场景,并可防护区域级故障。
集群管理员可以使用以下任一方式为 Istio 部署启用 HA:
- 固定副本数:将部署固定为指定数量的
istiodPod,以维持可预测的冗余级别。 - 自动扩缩容:让 Horizontal Pod Autoscaler(HPA)根据资源使用情况或自定义指标自动调整
istiodPod 的数量,这适用于负载波动的工作负载。
单节点集群注意事项
对于单节点集群,在 HA 模式下,务必禁用默认的 Pod Disruption Budget(PDB),以避免在节点操作(例如 drain)或缩容期间出现问题。你可以通过将以下配置添加到 Istio 资源中来实现:
spec.values.global.defaultPodDisruptionBudget.enabled: false会禁用 Istiod 的默认 Pod Disruption Budget。在单节点集群中,PDB 可能会阻止节点 drain 或 Pod 驱逐等操作,因为它会限制可用 Istiod 从节点副本数量不能低于 PDB 的最小期望值。禁用它可确保在这种特定拓扑下顺利执行操作。