为避免过期版本集群潜在的安全性和稳定性风险,同时享有新集群版本的新功能,建议您随ACK Edge集群的版本发布节奏及时升级集群。ACK Edge集群采用原地升级方式进行升级,本文为您介绍ACK Edge集群升级的注意事项、升级流程和操作。
为什么需要升级集群版本
降低安全和稳定性风险:随着Kubernetes版本迭代,会不断优化及修复发现的安全及稳定性漏洞,长期使用过期版本集群会给业务带来安全和稳定性风险。
享受更好的维护支持:对于过期版本,ACK Edge集群不再提供安全补丁和问题修复,也无法保证过期版本的技术支持质量。使用新版本能够让您享受更好的技术支持和答疑服务。
使用新版本的新功能:随着社区Kubernetes版本的演进,新版本包含新的功能和改进,ACK Edge集群也将进行适配和发布,为您带来更好的开发和运维体验。
注意事项
ACK Edge集群支持的升级范围为1.18到1.22版本,且只能按照支持的版本依次升级,不支持跨版本升级,不支持回退。
例如,从1.18版本升级到1.22版本,需要进行两次升级操作,先从1.18升级到1.20版本,再从1.20升级到1.22版本。
说明目前已支持从集群版本1.26开始的升级。若您升级范围为1.26到1.30版本,请提交工单开通白名单。
边缘节点池和控制面最多只能相差两个次要版本,例如控制面为1.22版本,边缘节点池最低是1.20版本,否则会导致集群异常。
升级流程、方式及所需时间
升级流程
升级前准备
集群升级中
控制面和云端节点池升级前,均需通过前置检查,等待所有检查项均已通过或修复完成后,可进入后续的升级操作。
控制面升级:采用滚动升级的方式。升级控制面组件,包括kube-apiserver、kube-controller-manager、kube-scheduler。
云端节点池升级:云端节点池升级包括kubelet和容器运行时的升级。按照分批策略执行分批升级。
根据节点池依次执行,同一时间只对一个节点池执行升级。
同一个节点池内采用分批升级。第一批升级的节点数为1,后续的批次以2的幂数进行增长。如果暂停后重新恢复升级,依然遵循该分批策略。您可以在节点池升级页面配置每批升级节点的最大数量,推荐设置为10。
边缘节点池升级:需要您手动执行命令,将待升级边缘节点池下的所有节点依次进行升级。
升级所需时间
ACK Edge集群控制面升级时间约为5分钟。
云端节点池升级时内部节点分批升级,每批升级时间约为5分钟。
边缘节点池需要由您手动执行命令完成升级操作,操作时间和节点池下的节点数量有关。
集群升级后
核验集群版本信息,检查节点池运行是否正常,并检查集群业务运行是否正常。
操作步骤
步骤一:升级控制面
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在集群升级页面选择可升级的目标版本,然后单击前置检查,提前扫描集群升级可能存在的潜在风险。
检查完成后,您可以在前置检查结果区域查看检查结果。
结果正常时,升级检查成功,请继续进行集群升级操作。
结果提示异常时,不影响当前集群的运行及集群状态。您可以参见推荐的解决方案进行修复。关于典型修复方案,请参见集群检查项及修复方案。
说明Kubernetes 1.20及以后版本的集群升级前检查时,会检查当前版本是否使用了废弃API,检查结果不会影响升级流程,仅作为提示信息。详细内容,请参见废弃API说明。
前置检查通过后,单击立即升级,按照页面提示进行控制面的升级。
升级过程中,您可以在页面右上角查看升级历史。
升级完成后,请在集群列表查看集群版本,确认升级是否成功。新扩容节点的版本也将遵循控制面版本。
步骤二:升级云端节点池
控制面升级完成后,请尽快在业务低峰期完成云端节点池的升级。云端节点池升级包括节点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 |
返回如下执行结果,则说明当前边缘节点升级成功。
升级常见问题
若一直不升级,后台是否会强制完成自动升级?
不会,ACK Edge集群目前只支持手动升级,若您一直不进行升级操作,将一直使用旧的集群版本。建议您及时将集群升级到最新版本,获得更完整的功能特性和技术支持。
边缘节点升级失败如何处理?
请参见如何处理边缘节点升级失败的问题?排查原因。
相关文档
在执行升级前置检查时,若检查结果异常,可参考集群检查项及修复方案排查异常原因。