ACK Auto Mode 集群在运行过程中需要持续进行 Kubernetes 版本升级和组件更新以保持安全性与稳定性。集群自动升级功能可在指定的维护窗口内,自动完成 Kubernetes 版本升级、数据面组件(kubelet/容器运行时)升级和集群核心组件(Addon)升级。通过升级通道和维护窗口策略的配合,您可以在最小化人工干预的前提下,保持集群处于受支持的安全版本。
核心概念
概念 | 说明 |
升级通道 | 集群版本自动升级步长的策略,分为 |
维护窗口 | 允许自动运维执行的时间段,窗口外不会触发或中断任务。 |
执行计划 | 一次具体运维动作的载体,具有完整的状态生命周期。 |
控制面(Control Plane) | 集群的 Master 组件,包括 Kubernetes API Server、Controller Manager、Scheduler 等核心组件。 |
数据面(Data Plane) | 节点上的 kubelet、容器运行时(containerd)等。 |
Kubernetes 版本自动升级
集群升级通道说明
Auto Mode将版本管理转化为升级通道模型,您可以根据业务的稳定性和对新特性的需求选择合适的升级通道:
通道 | 升级行为 | 适用场景 |
最新补丁版本( | 当前次要版本存在可用的补丁版本时,自动升级到该补丁版本(如 1.34.3-aliyun.1 → 1.34.6-aliyun.1),不涉及破坏性变更。 | 追求稳定性,仅接受安全与缺陷修复。 |
次新次要版本( | 自动升级至次要版本为次新的最新补丁版本。新的 Kubernetes 版本可能涉及 API 和功能特性的变更,但其稳定性已经过广泛验证。 | 平衡稳定性与新特性。 |
最新次要版本( | 自动升级至最新次要版本的最新补丁版本,以更快获取 Kubernetes 社区的新特性。 | 需尽快体验新版本能力。 |
Auto Mode 集群的自动升级与标准 ACK 托管集群的差异如下:
Auto Mode 集群创建时即默认开启版本自动升级,无需手动启用。
Auto Mode 集群的组件自动升级为强制项,不支持关闭。
Auto Mode 集群的自动升级覆盖范围包含控制面、数据面(kubelet/containerd)和系统组件(Addon)三个层面,升级由统一的维护窗口和执行计划驱动。
升级范围
集群版本自动升级涵盖两个层面,二者按严格顺序执行:
数据面 kubelet 升级:将节点池内节点的 kubelet 与容器运行时升级到与控制面一致的版本。
控制面升级:升级集群控制面的 Kubernetes 版本。
升级控制面前,系统会校验并确保数据面的 kubelet 及 containerd 版本满足目标版本的兼容性要求(例如:升级至 1.24 需切换为 containerd 运行时,升级至 1.26 需 containerd ≥1.6)。若数据面组件版本未达到控制面升级的前置标准,系统将不会触发控制面升级计划。
版本路径计算
系统根据集群配置的升级通道,以当前版本为起点,逐级计算下一可升级版本,生成确定性升级路径。计算遵循以下规则:
步长约束:每次仅推进一个 minor 版本,禁止跨版本跳跃升级。
目标版本选择:每个 minor 版本自动锚定该通道的最新补丁版本。
数据面基准:路径计算的起始版本取节点池内所有节点 kubelet 的最小版本号。
以下是一个 stable 通道示例(假设当前集群版本为 1.34):
当前版本 1.34.x → 1.35.x(最新补丁) → 1.36.x(最新补丁) → ... → 最终稳定版节点升级策略
节点池 kubelet 升级采用滚动分批方式,保障业务连续性:
并发度(MaxParallelism):默认每批 1 个节点。
节点排空(Drain):升级前对节点执行 cordon(禁止调度)并排空 Pod。
自动跳过 DaemonSet 管理的 Pod 和静态镜像 Pod。
自动处理使用本地存储(emptyDir)的 Pod。
优雅终止宽限期默认 90 秒。
批次间隔:支持配置批次间等待时长,用于升级过程中的状态观察与验证。
配置方式
登录容器服务管理控制台,在集群列表中单击目标集群,进入集群页面。单击左侧导航栏集群信息,在页面中单击基本信息页签,进入集群基本信息页面。
在版本自动升级在Auto Mode集群创建时已自动开启。单击,可以配置升级通道(
patch/stable/rapid)。单击即可开启并配置自动维护周期(包含集群与组件自动升级任务)。
Auto Mode 集群中所有智能托管节点池默认参与自动升级,不支持单个节点池独立关闭 kubelet 自动升级。升级策略由集群级配置统一驱动。
组件自动升级
升级范围
组件自动升级面向集群核心系统组件,在维护窗口内自动升级到推荐版本。当前支持自动升级的组件按类别列出如下。
核心组件
组件名称 | 描述 |
提供 Kubernetes 与阿里云基础设施的对接能力,负责管理负载均衡(CLB/NLB)及跨节点网络通信。 | |
Auto Mode 集群的节点弹性伸缩控制器,负责根据工作负载需求自动完成节点扩缩容。 |
网络
组件名称 | 描述 |
Terway 网络插件的控制面组件,负责网络策略下发、IP 资源分配及网络拓扑管理。 | |
阿里云自研的 Terway CNI 网络插件,支持 eBPF 网络加速和 Kubernetes NetworkPolicy,提供集群内部网络互通能力。 | |
Terway ENI 多 IP 模式的数据面组件,负责弹性网卡的 IP 分配与容器网络数据面转发。 |
存储
组件名称 | 描述 |
用于管理存储组件的生命周期,协调 CSI 插件的安装、升级和配置。 | |
CSI 节点插件,支持云盘、NAS、OSS 等存储卷的挂载和卸载。 | |
CSI 控制面插件,支持存储卷的动态创建和生命周期管理。包含托管版本 managed-csiprovisioner。 | |
容器网络文件系统控制器,提供 NAS 存储卷的生命周期管理和性能优化。 |
日志与监控
组件名称 | 描述 |
集群节点异常事件监控组件,自动检测节点故障并上报事件。 | |
成本分析数据处理组件,为集群成本洞察功能提供数据采集与计算支持。 | |
日志采集组件,负责容器标准输出和文件日志的采集与投递。 | |
对接 ARMS Prometheus 监控服务,提供集群和工作负载的指标采集与监控能力。 | |
资源指标聚合组件,提供 Metrics API 支持 HPA 水平弹性伸缩。 |
安全
组件名称 | 描述 |
集群安全巡检组件,定期扫描集群配置和运行时安全风险。 | |
RAM 身份认证组件,为集群提供基于阿里云 RAM 的身份认证和鉴权能力。 |
GPU
组件名称 | 描述 |
NVIDIA GPU 设备插件,负责将节点上的 GPU 资源注册到 Kubernetes 并支持 Pod 调度使用 GPU。 |
执行特点
集群级操作:组件升级作用于整个集群控制面,同一集群同一时刻仅执行一个组件升级计划。
错峰编排:当同一集群同时存在多个组件升级需求时,各组件在同一运维窗口内依次升级,每个组件间隔约 15 分钟,避免同时变更引发风险。
Auto Mode 集群约束:Auto Mode 集群的组件升级为强制项,不支持关闭。
执行计划生命周期
每一次自动升级动作都由一个执行计划管理。执行计划的状态流转如下图所示。
状态 | 含义 |
Scheduled(待执行) | 计划已生成,等待进入维护窗口执行。 |
Executing(执行中) | 计划正在执行运维操作。 |
Executed(已完成) | 运维成功完成。 |
Canceled(已取消) | 因配置关闭、集群删除、超出窗口等原因取消。 |
Failed(已失败) | 多次重试后仍失败,归档。 |
执行流程
计划生成:系统自动巡检所有集群,识别需要升级的对象并生成计划。
冲突编排:对计划进行去重、限流、错峰处理,确保同集群/同节点池不并发冲突。
窗口调度:仅在维护窗口内挑选可执行计划,逐个提交执行。
执行与同步:调用底层运维接口执行,定期同步任务进度至计划状态。
消息通知:执行失败时自动推送通知。
安全保障机制
维护窗口约束:所有自动运维严格限定在窗口内执行。
并发控制:
同一集群内不并发执行多个升级计划。
同一节点池内不并发执行。
熔断保护:某类升级任务连续失败达到阈值时,系统自动熔断该类任务,避免故障扩散。
前置校验:升级前进行版本一致性、节点可用性、运行时兼容性等多项校验,不满足条件则拦截并上报。
可取消:支持对运维计划执行取消操作。
注意事项
自动升级仅在维护窗口开启的前提下生效,请合理配置窗口时间以覆盖业务低峰期。
关闭集群自动升级或节点池托管配置后,正在运行的相关计划将被自动取消。
灵骏节点池、混合节点池暂不支持 kubelet 自动升级。
集群处于删除、删除失败等非运行状态时,相关计划将被取消。
部分特殊场景(如试用用户 CVE 修复次数、云安全授权数量不足)会导致计划自动取消并告警,请关注消息通知。