组件高可用

最近更新时间:2026-04-29 18:08:58

我的收藏
组件高可用是指集群中的组件(如 CBS、CoreDNS 等)在部署时,其工作负载的 Pod 实例分布在两个及以上可用区(Availability Zone)的节点上,从而在单个可用区发生故障时仍能保证组件服务的连续可用。

功能特性

腾讯云容器服务组件管理提供组件高可用配置能力,支持对满足条件的组件一键开启或关闭高可用。
开启高可用:当集群已开启高可用时,支持对未处于高可用状态的组件点击开启高可用,将组件工作负载调整为跨可用区高可用部署模式。
关闭高可用:当集群已关闭高可用时,支持对高可用状态的组件点击关闭高可用,解除组件工作负载的高可用部署约束。

组件高可用状态

系统通过查询组件工作负载的 Pod 在节点上的可用区分布情况,来判断组件当前的高可用状态:
状态
说明
高可用
组件所有 Deployment 和 Statefulset 类型的工作负载的 Running Pod 分布于 ≥2 个可用区。
非高可用
存在至少一个 Deployment 或 Statefulset 类型的工作负载,其所有 Running Pod 均分布在同一个可用区内。

支持高可用的组件列表

组件名称
版本要求
cbs
1.1.14 及以上版本
eniipamd
3.10.1 及以上版本
coredns
无版本限制
kubernetes-proxy
无版本限制

前置限制条件

集群高可用属性:开启组件高可用前,需确保集群已开启高可用属性;关闭组件高可用前,需确保集群已关闭高可用属性。
多可用区节点:集群中需存在两个及以上可用区的 Ready 状态节点,否则无法开启组件高可用。
组件状态:组件需处于正常运行状态,不能处于更新中或删除中状态。
版本限制:组件需满足最低版本要求,不满足时需先升级组件版本。

控制台操作指南

开启组件高可用

前置条件:集群已开启高可用属性,且集群节点分布在 2 个及以上可用区。
操作步骤:
2. 选择集群,进入集群基本信息页面,确认集群已开启高可用属性(可在基本信息页面查看和修改)。
3. 在左侧导航栏中,选择运维中心 > 组件管理
4. 在组件管理列表中,查看目标组件是否处于非高可用状态。
5. 在目标组件的操作列中,单击开启高可用
6. 等待组件更新完成,观察是否高可用列变为“是”。

关闭组件高可用

前置条件:集群已关闭高可用属性。
操作步骤
2. 进入目标集群基本信息页面,确认集群已关闭高可用属性(可在基本信息页面查看和修改)。
3. 在左侧导航栏中,选择运维中心 > 组件管理
4. 在目标组件的操作列中,单击关闭高可用
5. 等待组件更新完成。
注意:
关闭组件高可用后,组件更新不再强制跨可用区部署,组件最终的部署状态取决于 Kubernetes 调度器的调度策略,可能仍处于高可用或非高可用状态。

注意事项

集群中组件高可用状态趋向于集群高可用状态。当集群为高可用时,组件更新后将自动尝试以高可用模式部署;当集群为非高可用时,组件更新时不再强制高可用部署。
对于版本不满足要求的组件,需先将组件升级到支持高可用的版本,再执行开启高可用操作。
开启高可用会修改组件工作负载的 TopologySpreadConstraints 拓扑分布约束配置,将 Pod 分散调度到不同可用区。

常见问题

点击开启高可用后,组件更新完成但状态为什么仍显示非高可用?

这通常是由于集群 Kubernetes 版本过低,调度器不支持组件高可用调度特性。建议将集群 Kubernetes 版本升级至以下最低版本,然后重新执行开启高可用操作即可:
Kubernetes 小版本
最低支持版本
v1.28及以上
所有版本均支持
v1.26
v1.26.1-tke.25
v1.24
v1.24.4-tke.36
v1.22
v1.22.5-tke.46
v1.20
v1.20.6-tke.64
v1.18
v1.18.4-tke.60

点击开启高可用后,组件更新失败如何处理?

请根据页面提示的错误信息,参见 组件升级常见错误和处理 检查组件配置是否满足要求。