ACK版本升级
需求:
将ACK版本从1.14.8升级至1.16.9
升级前注意事项:
集群升级需要机器可以公网访问,以便下载升级所需的软件包。
集群升级Kubernetes过程中,可能会有升级失败的情况,为了您的数据安全,强烈建议您先打快照然后再升级。有关ECS打快照的操作,请参见创建一个云盘快照。
集群升级Kubernetes过程中,集群上的应用不会中断。如果应用强依赖于API Server可能会有短暂影响。
由于老版本的FlexVolume(v1.11.2.5及以前)挂载的OSS卷在升级的时候会重新挂载,使用OSS卷的Pod在集群升级后需要重建。
如果您对Kubernetes集群有过任何的配置更改(例如打开了swap分区),则升级过程有可能失败。
集群升级过程中您可以在一批节点升级完成后中断进程,此时集群处于升级的中间状态,建议您不要对集群进行操作,并尽快完成升级过程。处于中间状态的集群会在15日之后关闭升级过程,同时清理一切升级相关的事件和日志信息。
集群升级过程中,如非发生错误,请勿修改kube-upgrade命名空间下面的相关资源。
如果集群升级失败,升级过程会暂停,您需要分析失败原因并清理kube-upgrade命名空间下失败的Pod,确认修复成功后重启升级过程。如需帮助,请联系在线客服。
在完成Kubernetes集群升级后,请您同步升级您本地的kubectl版本。如果未及时升级,在使用本地kubectl的过程中可能会因为与集群API Server版本不同,发生类似invalid object doesn't have additional properties的报错。
在升级到Kubernetes v1.14之前,检查是否做了对应配置,排除访问LoadBalancer暴露出去的SLB地址不通的风险,请参见Kubernetes集群中访问LoadBalancer暴露的SLB地址不通。
在升级ACK集群的Kubernetes 1.16到1.18版本时,如果您集群中的应用使用了云盘数据卷,且数据卷类型为Block Volume,请在升级前阅读CSI Block Volume升级说明。
ACK集群的Kubernetes版本升级只能一级一级的升级。例如低版本ACK集群的Kubernetes版本为1.12,如果要升级到1.18 Kubernetes版本,需进行三次手动升级,先升级到1.14,然后1.16,最后1.18版本。
由于Kubernetes 1.20版本的集群不支持selfLink字段,若您的集群使用FlexVolume存储插件且安装了alicloud-nas-controller组件,在将低版本集群升级至Kubernetes 1.20版本之前需要将alicloud-nas-controller的镜像升级到v1.14.8.17-7b898e5-aliyun或更高版本。
目标集群版本说明:
升级步骤:
1、升级前检查集群
已提前针对集群进行了升级预检查,结果为正常。满足升级条件。
为保险起见,建议在升级前一天再针对集群做一次集群升级预检查。
2、 ECS创建快照备份
针对集群中所有节点创建快照备份,备份完成之后可以进行下面的升级集群动作。
3、升级集群
参考如下截图,进行集群升级。【注意:升级过程中注意观察,上次升级节点的时候,选择的为分批,在升级完成一个节点之后发现是需要手动再点击继续升级按钮,才会继续往下升级节点。】