集群与组件自动升级介绍

更新时间:
复制 MD 格式

ACK Auto Mode 集群在运行过程中需要持续进行 Kubernetes 版本升级和组件更新以保持安全性与稳定性。集群自动升级功能可在指定的维护窗口内,自动完成 Kubernetes 版本升级、数据面组件(kubelet/容器运行时)升级和集群核心组件(Addon)升级。通过升级通道和维护窗口策略的配合,您可以在最小化人工干预的前提下,保持集群处于受支持的安全版本。

核心概念

概念

说明

升级通道

集群版本自动升级步长的策略,分为 patchstablerapid 三种。

维护窗口

允许自动运维执行的时间段,窗口外不会触发或中断任务。

执行计划

一次具体运维动作的载体,具有完整的状态生命周期。

控制面(Control Plane)

集群的 Master 组件,包括 Kubernetes API Server、Controller Manager、Scheduler 等核心组件。

数据面(Data Plane)

节点上的 kubelet、容器运行时(containerd)等。

Kubernetes 版本自动升级

集群升级通道说明

Auto Mode将版本管理转化为升级通道模型,您可以根据业务的稳定性和对新特性的需求选择合适的升级通道:

通道

升级行为

适用场景

最新补丁版本(patch

当前次要版本存在可用的补丁版本时,自动升级到该补丁版本(如 1.34.3-aliyun.1 → 1.34.6-aliyun.1),不涉及破坏性变更。

追求稳定性,仅接受安全与缺陷修复。

次新次要版本(stable,推荐)

自动升级至次要版本为次新的最新补丁版本。新的 Kubernetes 版本可能涉及 API 和功能特性的变更,但其稳定性已经过广泛验证。

平衡稳定性与新特性。

最新次要版本(rapid

自动升级至最新次要版本的最新补丁版本,以更快获取 Kubernetes 社区的新特性。

需尽快体验新版本能力。

说明

Auto Mode 集群的自动升级与标准 ACK 托管集群的差异如下:

  • Auto Mode 集群创建时即默认开启版本自动升级,无需手动启用。

  • Auto Mode 集群的组件自动升级为强制项,不支持关闭。

  • Auto Mode 集群的自动升级覆盖范围包含控制面、数据面(kubelet/containerd)和系统组件(Addon)三个层面,升级由统一的维护窗口和执行计划驱动。

升级范围

集群版本自动升级涵盖两个层面,二者按严格顺序执行:

  1. 数据面 kubelet 升级:将节点池内节点的 kubelet 与容器运行时升级到与控制面一致的版本。

  2. 控制面升级:升级集群控制面的 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 秒。

  • 批次间隔:支持配置批次间等待时长,用于升级过程中的状态观察与验证。

配置方式

  1. 登录容器服务管理控制台,在集群列表中单击目标集群,进入集群页面。单击左侧导航栏集群信息,在页面中单击基本信息页签,进入集群基本信息页面。

  2. 在版本自动升级在Auto Mode集群创建时已自动开启。单击版本自动升级 > 编辑,可以配置升级通道(patch / stable / rapid)。单击集群维护窗口 > 开启即可开启并配置自动维护周期(包含集群与组件自动升级任务)。

说明

Auto Mode 集群中所有智能托管节点池默认参与自动升级,不支持单个节点池独立关闭 kubelet 自动升级。升级策略由集群级配置统一驱动。

组件自动升级

升级范围

组件自动升级面向集群核心系统组件,在维护窗口内自动升级到推荐版本。当前支持自动升级的组件按类别列出如下。

核心组件

组件名称

描述

Cloud Controller Manager

提供 Kubernetes 与阿里云基础设施的对接能力,负责管理负载均衡(CLB/NLB)及跨节点网络通信。

ACK GOATScaler

Auto Mode 集群的节点弹性伸缩控制器,负责根据工作负载需求自动完成节点扩缩容。

网络

组件名称

描述

terway-controlplane

Terway 网络插件的控制面组件,负责网络策略下发、IP 资源分配及网络拓扑管理。

terway

阿里云自研的 Terway CNI 网络插件,支持 eBPF 网络加速和 Kubernetes NetworkPolicy,提供集群内部网络互通能力。

terway-eniip

Terway ENI 多 IP 模式的数据面组件,负责弹性网卡的 IP 分配与容器网络数据面转发。

存储

组件名称

描述

storage-operator

用于管理存储组件的生命周期,协调 CSI 插件的安装、升级和配置。

csi-plugin

CSI 节点插件,支持云盘、NAS、OSS 等存储卷的挂载和卸载。

csi-provisioner

CSI 控制面插件,支持存储卷的动态创建和生命周期管理。包含托管版本 managed-csiprovisioner。

cnfs-controller

容器网络文件系统控制器,提供 NAS 存储卷的生命周期管理和性能优化。

日志与监控

组件名称

描述

ack-node-problem-detector

集群节点异常事件监控组件,自动检测节点故障并上报事件。

ack-cost-exporter

成本分析数据处理组件,为集群成本洞察功能提供数据采集与计算支持。

LoongCollector

日志采集组件,负责容器标准输出和文件日志的采集与投递。

ack-arms-prometheus

对接 ARMS Prometheus 监控服务,提供集群和工作负载的指标采集与监控能力。

metrics-server

资源指标聚合组件,提供 Metrics API 支持 HPA 水平弹性伸缩。

安全

组件名称

描述

managed-security-inspector

集群安全巡检组件,定期扫描集群配置和运行时安全风险。

ack-ram-authenticator

RAM 身份认证组件,为集群提供基于阿里云 RAM 的身份认证和鉴权能力。

GPU

组件名称

描述

ack-nvidia-device-plugin

NVIDIA GPU 设备插件,负责将节点上的 GPU 资源注册到 Kubernetes 并支持 Pod 调度使用 GPU。

执行特点

  • 集群级操作:组件升级作用于整个集群控制面,同一集群同一时刻仅执行一个组件升级计划。

  • 错峰编排:当同一集群同时存在多个组件升级需求时,各组件在同一运维窗口内依次升级,每个组件间隔约 15 分钟,避免同时变更引发风险。

  • Auto Mode 集群约束:Auto Mode 集群的组件升级为强制项,不支持关闭。

执行计划生命周期

每一次自动升级动作都由一个执行计划管理。执行计划的状态流转如下图所示。

image

状态

含义

Scheduled(待执行)

计划已生成,等待进入维护窗口执行。

Executing(执行中)

计划正在执行运维操作。

Executed(已完成)

运维成功完成。

Canceled(已取消)

因配置关闭、集群删除、超出窗口等原因取消。

Failed(已失败)

多次重试后仍失败,归档。

执行流程

  1. 计划生成:系统自动巡检所有集群,识别需要升级的对象并生成计划。

  2. 冲突编排:对计划进行去重、限流、错峰处理,确保同集群/同节点池不并发冲突。

  3. 窗口调度:仅在维护窗口内挑选可执行计划,逐个提交执行。

  4. 执行与同步:调用底层运维接口执行,定期同步任务进度至计划状态。

  5. 消息通知:执行失败时自动推送通知。

安全保障机制

  • 维护窗口约束:所有自动运维严格限定在窗口内执行。

  • 并发控制

    • 同一集群内不并发执行多个升级计划。

    • 同一节点池内不并发执行。

  • 熔断保护:某类升级任务连续失败达到阈值时,系统自动熔断该类任务,避免故障扩散。

  • 前置校验:升级前进行版本一致性、节点可用性、运行时兼容性等多项校验,不满足条件则拦截并上报。

  • 可取消:支持对运维计划执行取消操作。

注意事项

  1. 自动升级仅在维护窗口开启的前提下生效,请合理配置窗口时间以覆盖业务低峰期。

  2. 关闭集群自动升级或节点池托管配置后,正在运行的相关计划将被自动取消。

  3. 灵骏节点池、混合节点池暂不支持 kubelet 自动升级。

  4. 集群处于删除、删除失败等非运行状态时,相关计划将被取消。

  5. 部分特殊场景(如试用用户 CVE 修复次数、云安全授权数量不足)会导致计划自动取消并告警,请关注消息通知。