升级ACK Edge集群

为避免过期版本集群潜在的安全性和稳定性风险,同时享有新集群版本的新功能,建议您随ACK Edge集群的版本发布节奏及时升级集群。ACK Edge集群采用原地升级方式进行升级,本文为您介绍ACK Edge集群升级的注意事项、升级流程和操作。

为什么需要升级集群版本

  • 降低安全和稳定性风险:随着Kubernetes版本迭代,会不断优化及修复发现的安全及稳定性漏洞,长期使用过期版本集群会给业务带来安全和稳定性风险。

  • 享受更好的维护支持:对于过期版本,ACK Edge集群不再提供安全补丁和问题修复,也无法保证过期版本的技术支持质量。使用新版本能够让您享受更好的技术支持和答疑服务。

  • 使用新版本的新功能:随着社区Kubernetes版本的演进,新版本包含新的功能和改进,ACK Edge集群也将进行适配和发布,为您带来更好的开发和运维体验。

注意事项

  • ACK Edge集群支持的升级范围为1.181.22版本,且只能按照支持的版本依次升级,不支持跨版本升级,不支持回退。

    例如,从1.18版本升级到1.22版本,需要进行两次升级操作,先从1.18升级到1.20版本,再从1.20升级到1.22版本。

    说明

    目前已支持从集群版本1.26开始的升级。若您升级范围为1.261.30版本,请提交工单开通白名单。

  • 边缘节点池和控制面最多只能相差两个次要版本,例如控制面为1.22版本,边缘节点池最低是1.20版本,否则会导致集群异常。

升级流程、方式及所需时间

升级流程

image

升级前准备

  • 登录容器服务管理控制台,进入集群页面,在集群列表的版本列查看当前ACK Edge集群的版本并确认升级版本。

  • 仔细阅读ACK Edge集群发布的版本及各版本的功能特性,请参见版本发布说明

集群升级中

控制面和云端节点池升级前,均需通过前置检查,等待所有检查项均已通过或修复完成后,可进入后续的升级操作。

  • 控制面升级:采用滚动升级的方式。升级控制面组件,包括kube-apiserver、kube-controller-manager、kube-scheduler。

  • 云端节点池升级:云端节点池升级包括kubelet和容器运行时的升级。按照分批策略执行分批升级。

    • 根据节点池依次执行,同一时间只对一个节点池执行升级。

    • 同一个节点池内采用分批升级。第一批升级的节点数为1,后续的批次以2的幂数进行增长。如果暂停后重新恢复升级,依然遵循该分批策略。您可以在节点池升级页面配置每批升级节点的最大数量,推荐设置为10。

  • 边缘节点池升级:需要您手动执行命令,将待升级边缘节点池下的所有节点依次进行升级。

升级所需时间

  • ACK Edge集群控制面升级时间约为5分钟。

  • 云端节点池升级时内部节点分批升级,每批升级时间约为5分钟。

  • 边缘节点池需要由您手动执行命令完成升级操作,操作时间和节点池下的节点数量有关。

集群升级后

核验集群版本信息,检查节点池运行是否正常,并检查集群业务运行是否正常。

操作步骤

步骤一:升级控制面

    1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

    2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 集群升级

    3. 集群升级页面选择可升级的目标版本,然后单击前置检查,提前扫描集群升级可能存在的潜在风险。

      检查完成后,您可以在前置检查结果区域查看检查结果。

      • 结果正常时,升级检查成功,请继续进行集群升级操作。

      • 结果提示异常时,不影响当前集群的运行及集群状态。您可以参见推荐的解决方案进行修复。关于典型修复方案,请参见集群检查项及修复方案

        说明

        Kubernetes 1.20及以后版本的集群升级前检查时,会检查当前版本是否使用了废弃API,检查结果不会影响升级流程,仅作为提示信息。详细内容,请参见废弃API说明

    4. 前置检查通过后,单击立即升级,按照页面提示进行控制面的升级。

      升级过程中,您可以在页面右上角查看升级历史。

      升级完成后,请在集群列表查看集群版本,确认升级是否成功。新扩容节点的版本也将遵循控制面版本。

步骤二:升级云端节点池

控制面升级完成后,请尽快在业务低峰期完成云端节点池的升级。云端节点池升级包括节点kubelet和容器运行时的升级。功能介绍、相关注意事项及操作步骤,请参见云端节点池升级

步骤三:升级边缘节点池

重要
  • 升级边缘节点池之前必须保证控制面已升级完成。

  • 边缘集群节点池下的所有边缘节点都升级成功,边缘节点池才算升级完成。

在待升级边缘节点池下的所有边缘节点上,依次执行如下命令,完成所有边缘节点的升级。

 export REGION="" INTERCONNECT_MODE="" TARGET_CLUSTER_VERSION=""; export ARCH=$(uname -m | awk '{print ($1 == "x86_64") ? "amd64" : (($1 == "aarch64") ? "arm64" : "amd64")}') INTERNAL=$( [ "$INTERCONNECT_MODE" = "private" ] && echo "-internal" || echo "" ); wget http://aliacs-k8s-${REGION}.oss-${REGION}${INTERNAL}.aliyuncs.com/public/pkg/run/attach/${TARGET_CLUSTER_VERSION}/${ARCH}/edgeadm -O edgeadm; chmod u+x edgeadm;./edgeadm upgrade --interconnect-mode=${INTERCONNECT_MODE} --region=${REGION}

参数说明如下:

参数

说明

示例值

TARGET_CLUSTER_VERSION

指定要升级到的目标集群版本。

说明

升级的目标集群版本就是控制面升级完成后的版本。

1.22.15-aliyunedge.1

ACK Edge集群发布的版本和具体版本号,请参见版本发布说明

REGION

指定集群所在地域的Region ID。

cn-hangzhou

ACK Edge集群支持的地域及其Region ID,请参见开服地域

INTERCONNECT_MODE

指定节点接入的网络类型。

  • basic:公网接入。

  • private:专线接入。

basic

返回如下执行结果,则说明当前边缘节点升级成功。

image

升级常见问题

若一直不升级,后台是否会强制完成自动升级?

不会,ACK Edge集群目前只支持手动升级,若您一直不进行升级操作,将一直使用旧的集群版本。建议您及时将集群升级到最新版本,获得更完整的功能特性和技术支持。

边缘节点升级失败如何处理?

请参见如何处理边缘节点升级失败的问题?排查原因。

相关文档

在执行升级前置检查时,若检查结果异常,可参考集群检查项及修复方案排查异常原因。