容器服务支持升级集群版本。本文主要介绍升级集群 Kubernetes 版本的相关说明及操作。
升级流程
升级须知
升级集群包括 控制面升级 和 节点升级 两个部分,每部分中均包括 升级检查 和 升级执行 两个阶段。触发升级前,请仔细阅读本文描述的 升级策略、控制面升级注意事项、节点升级注意事项 内容。
升级策略
容器服务保障最近三个 Kubernetes 次要版本的稳定运行,过期版本的集群可能存在运行不稳定、升级失败等风险,但不影响已有业务的使用,建议您及时升级集群版本。更多内容请参见:
控制面升级注意事项
- Kubernetes 次要版本升级可能涉及到 Kubernetes 资源版本变更。升级前请确认您的应用是否使用了已废弃资源。如果您在应用的 Chart 中使用了已废弃资源,则需要更新应用 Chart 中的资源到新版本,再将新的 Chart 更新到集群中。详细的资源变更与弃用说明,请参见 Kubernetes 版本发布记录。
- 集群控制面(Master)升级 Kubernetes 版本过程中,集群上的应用不会中断。如果应用强依赖于 API Server 可能会有短暂影响。
- 集群控制面升级需要花费 5~10 分钟,在此期间您将无法操作您的集群。
- 升级集群控制面流程中,系统会自动执行升级前置检查。因此升级前,建议独立执行升级前置检查,并确保所有检查项已通过,可顺利进行升级操作。
- 升级前置检查,仅对当前正在运行的资源进行废弃 API 检查。
- 集群控制面升级不支持回滚,请谨慎进行。
- 如果集群中使用了自定义操作系统镜像,由于该类型镜像非容器服务官方严格验证,因此我们将无法保证集群升级的成功。
- 仅当节点 Kubernetes 版本与控制面 Kubernetes 版本一致时,控制面才可继续升级到下一个可升级版本。
- 同一集群连续升级 Kubernetes 次要版本时,建议版本升级间隔时间大于 24 小时,确保集群的稳定运行。例如当集群控制面从 Kubernetes v1.20 升级至 v1.24,并稳定运行 24 小时后,再将该集群升级至 v1.26 版本。
- 升级 Kubernetes 次要版本后可能存在参数不兼容的情况,因此次要版本升级不会保留您集群维度自定义 Kubelet 等参数,需要升级后重新设置以保证新增节点使用期望的自定义配置。相关操作说明,请参见 自定义集群 Kubelet 参数。
- VPC-CNI 网络模型的集群控制面从 Kubernetes v1.20 升级至 v1.24 版本时,需要手动获取 EndpointSlices 资源。详细操作和说明,请参见本文下方 附录。
节点升级注意事项
- 节点 Kubernetes 升级会影响正在运行的业务,升级过程中可能造成 Pod Prober、Lifecycle Hook 失败,也可能会出现 Pod 原地重启情况。因此在升级前,应检查集群状态是否健康、是否处于业务低峰期,从而判断是否开始进行节点升级。
- 升级节点 Kubernetes 版本流程中,系统会自动执行升级前置检查。因此升级前,建议独立执行升级前置检查,并确保所有检查项已通过,可顺利进行升级操作。
- 节点 Kubernetes 升级不支持回滚,请谨慎进行。
- 如果您在节点上修改过 kubelet、containerd 参数配置,则在升级节点过程中仅保留兼容参数,会移除不兼容参数,在升级节点完成后,需要您再次检查。
- 节点要升级的目标 Kubernetes 版本不能超过当前控制面 Kubernetes 版本。
前提条件
- 目标集群的 Kubernetes 版本,显示 可升级,即不是最新的容器服务发布 Kubernetes 版本。详细信息,请参见 Kubernetes 版本发布记录。
- 目标集群的 状态 必须为 运行中。
- 请确保目标集群业务处于低峰期。
控制面升级
步骤一:升级检查
进行控制面升级前,请先进行升级检查,确保前置解决所有可能影响集群升级的问题。
- 登录 容器服务控制台。
- 单击左侧导航栏中的 集群。
- 在集群列表页面,单击目标集群。
- 在集群管理页面的左侧导航栏中,单击 集群升级。
- 在 集群升级 页面,单击 Kubernetes 升级检查 页签,做升级前置检查。
- 单击 控制面升级检查,然后单击 确定,开始进行控制面 Kubernetes 升级前置检查。
检查完成后,按照 检查状态 列下的显示,进行下一步操作:
- 通过:可进行升级操作。
- 失败:单击右侧的 查看详情,并按照系统提示处理检查失败项。处理完成后重新进行 控制面升级检查,保证 检查状态 显示 通过 后进行升级操作。
说明
集群审计日志 相关的升级检查项会对集群 24 小时内的审计日志进行检查,如果您已处理了相关告警项,则升级集群时可以忽略该告警项。相关检查项名称如下:
- 【重要】审计日志移除 k8s API 检查
- 【重要】vpc-cni 兼容性检查
- 审计日志废弃 k8s API 检查
步骤二:升级控制面
- 在 集群升级 页面,选择 Kubernetes 升级 页签,单击 控制面升级。
- 在 控制面 Kubernetes 升级 对话框,确认升级信息。
参数 | 说明 |
---|
升级须知 | 请仔细阅读并确认每条 升级须知。 |
升级目标版本 | 选择可升级的目标版本: - 补丁版本:显示在当前 Kubernetes 次要版本(例如 v1.24)基础上可升级的 VKE 补丁版本。
- 次要版本:显示可升级的 Kubernetes 次要版本,例如 v1.24 可升级至 v1.26。
|
升级检查告警 | 升级过程中,系统会再次自动进行升级前置检查,确保您的集群可以顺利进行 Kubernetes 升级。若您的前置检查项中存在 检查结果 为 警告 的检测项时,在您评估确认不影响业务情况下,可勾选 升级检查告警 忽略告警项,直接执行 Kubernetes 升级操作。 |
- 单击 确定升级,开始进行控制面升级。
升级过程中,可单击右侧 操作 列下的 查看详情,查看控制面 Kubernetes 升级进度。
- 查看升级结果。状态 显示为 通过,表示已完成 Kubernetes 升级。
- (可选)若升级失败,请按照界面提示重新操作。若有更多问题,可提交 工单申请 获取技术支持。
节点升级
说明
- 控制面 Kubernetes 版本与节点 Kubernetes 版本一致时,需要先完成控制面升级操作后,才可进行节点的升级检查以及升级操作。
- 控制面 Kubernetes 版本比节点 Kubernetes 版本高时,节点可升级至与控制面 Kubernetes 版本相同的版本。
步骤一:升级检查
- 登录 容器服务控制台。
- 单击左侧导航栏中的 集群。
- 在集群列表页面,单击目标集群。
- 在集群管理页面的左侧导航栏中,单击 集群升级。
- 在 集群升级 页面,单击 Kubernetes 升级检查 页签。
- 单击 节点升级检查,在 节点升级检查 页面勾选可升级的节点,然后单击 确定,开始进行节点升级前置检查。
检查完成后,按照 检查状态 列下的显示,进行下一步操作:
- 通过:可进行升级操作。
- 失败 或 警告:单击右侧的 查看详情,并按照系统提示处理检查失败项。处理完成后重新进行 节点升级检查,保证 检查状态 显示 通过 后进行升级操作。
说明
若您评估确认升级前置检查项中 检查结果 为 警告 的检测项不影响您的业务,也可忽略该项,直接执行 Kubernetes 升级操作。
步骤二:升级节点
- 在 集群升级 页面,选择 Kubernetes 升级 页签,单击 节点升级。
- 在系统弹出的提示框中仔细阅读每条 升级须知,确认升级注意事项后单击 确定升级。
- 在 节点 Kubernetes 升级 页面,确认升级信息。
参数 | 说明 |
---|
基本信息 | 显示节点要升级的目标 Kubernetes 版本。 |
选择升级节点 | 选择该集群下需要进行 Kubernetes 升级的目标节点。 |
升级检查告警 | 升级过程中,系统会再次自动进行升级前置检查,确保您的集群可以顺利进行 Kubernetes 升级。若您的前置检查项中存在 检查结果 为 警告 的检测项时,在您评估确认不影响业务情况下,可勾选 我已悉知升级前置检查结果 忽略告警项,直接执行 Kubernetes 升级操作。 |
- 单击 确定,开始进行节点升级。
(可选)升级过程中,可单击右侧 操作 列下的 查看详情,查看节点 Kubernetes 升级进度。
- 查看升级结果。状态 显示为 通过,表示已完成 Kubernetes 升级。
- (可选)若升级失败,请按照界面提示重新操作。若有更多问题,可提交 工单申请 获取技术支持。
升级后检查
升级完成后,请在集群的 总览 页面核验集群 Kubernetes 版本、节点 Kubernetes 版本、集群运行状态,同时检查您集群内的其他业务是否正常。若业务异常,请查看相关事件和日志信息以进一步处理,您也可以提交 工单申请 获取技术支持。
附录
VPC-CNI 网络模型集群中,当集群控制面从 Kubernetes v1.20 升级至 v1.24 后,需要重启从属于 vpc-cni 组件的 Cello DaemonSet,以获取新版本 EndpointSlices 资源。详细操作如下:
- 通过 kubectl 连接已升级的集群。详细操作,请参见 连接集群。
- 执行如下命令,重启从属于 vpc-cni 组件的 Cello DaemonSet。
kubectl rollout restart daemonset cello -n kube-system