You need to enable JavaScript to run this app.
导航
升级集群
最近更新时间:2024.08.19 11:06:34首次发布时间:2023.06.27 11:57:31

容器服务支持升级集群版本。本文主要介绍升级集群 Kubernetes 版本的相关说明及操作。

升级流程

alt

升级须知

升级集群包括 控制面升级节点升级 两个部分,每部分中均包括 升级检查升级执行 两个阶段。触发升级前,请仔细阅读本文描述的 升级策略控制面升级注意事项节点升级注意事项 内容。

升级策略

容器服务保障最近三个 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 版本发布记录
    alt
  • 目标集群的 状态 必须为 运行中
  • 请确保目标集群业务处于低峰期。

控制面升级

步骤一:升级检查

进行控制面升级前,请先进行升级检查,确保前置解决所有可能影响集群升级的问题。

  1. 登录 容器服务控制台
  2. 单击左侧导航栏中的 集群
  3. 在集群列表页面,单击目标集群。
  4. 在集群管理页面的左侧导航栏中,单击 集群升级
  5. 集群升级 页面,单击 Kubernetes 升级检查 页签,做升级前置检查。
  6. 单击 控制面升级检查,然后单击 确定,开始进行控制面 Kubernetes 升级前置检查。
    检查完成后,按照 检查状态 列下的显示,进行下一步操作:
    alt
    • 通过:可进行升级操作。
    • 失败:单击右侧的 查看详情,并按照系统提示处理检查失败项。处理完成后重新进行 控制面升级检查,保证 检查状态 显示 通过 后进行升级操作。

    说明

    集群审计日志 相关的升级检查项会对集群 24 小时内的审计日志进行检查,如果您已处理了相关告警项,则升级集群时可以忽略该告警项。相关检查项名称如下:

    • 【重要】审计日志移除 k8s API 检查
    • 【重要】vpc-cni 兼容性检查
    • 审计日志废弃 k8s API 检查

步骤二:升级控制面

  1. 集群升级 页面,选择 Kubernetes 升级 页签,单击 控制面升级
  2. 控制面 Kubernetes 升级 对话框,确认升级信息。
    参数说明
    升级须知请仔细阅读并确认每条 升级须知

    升级目标版本

    选择可升级的目标版本:

    • 补丁版本:显示在当前 Kubernetes 次要版本(例如 v1.24)基础上可升级的 VKE 补丁版本。
    • 次要版本:显示可升级的 Kubernetes 次要版本,例如 v1.24 可升级至 v1.26。
    升级检查告警升级过程中,系统会再次自动进行升级前置检查,确保您的集群可以顺利进行 Kubernetes 升级。若您的前置检查项中存在 检查结果警告 的检测项时,在您评估确认不影响业务情况下,可勾选 升级检查告警 忽略告警项,直接执行 Kubernetes 升级操作。
  3. 单击 确定升级,开始进行控制面升级。
    升级过程中,可单击右侧 操作 列下的 查看详情,查看控制面 Kubernetes 升级进度。
    alt
  4. 查看升级结果。状态 显示为 通过,表示已完成 Kubernetes 升级。
    alt
  5. (可选)若升级失败,请按照界面提示重新操作。若有更多问题,可提交 工单申请 获取技术支持。

节点升级

说明

  • 控制面 Kubernetes 版本与节点 Kubernetes 版本一致时,需要先完成控制面升级操作后,才可进行节点的升级检查以及升级操作。
  • 控制面 Kubernetes 版本比节点 Kubernetes 版本高时,节点可升级至与控制面 Kubernetes 版本相同的版本。

步骤一:升级检查

  1. 登录 容器服务控制台
  2. 单击左侧导航栏中的 集群
  3. 在集群列表页面,单击目标集群。
  4. 在集群管理页面的左侧导航栏中,单击 集群升级
  5. 集群升级 页面,单击 Kubernetes 升级检查 页签。
  6. 单击 节点升级检查,在 节点升级检查 页面勾选可升级的节点,然后单击 确定,开始进行节点升级前置检查。
    检查完成后,按照 检查状态 列下的显示,进行下一步操作:
    • 通过:可进行升级操作。
    • 失败警告:单击右侧的 查看详情,并按照系统提示处理检查失败项。处理完成后重新进行 节点升级检查,保证 检查状态 显示 通过 后进行升级操作。

      说明

      若您评估确认升级前置检查项中 检查结果警告 的检测项不影响您的业务,也可忽略该项,直接执行 Kubernetes 升级操作。

步骤二:升级节点

  1. 集群升级 页面,选择 Kubernetes 升级 页签,单击 节点升级
  2. 在系统弹出的提示框中仔细阅读每条 升级须知,确认升级注意事项后单击 确定升级
  3. 节点 Kubernetes 升级 页面,确认升级信息。
    alt
    参数说明
    基本信息显示节点要升级的目标 Kubernetes 版本。
    选择升级节点选择该集群下需要进行 Kubernetes 升级的目标节点。
    升级检查告警升级过程中,系统会再次自动进行升级前置检查,确保您的集群可以顺利进行 Kubernetes 升级。若您的前置检查项中存在 检查结果警告 的检测项时,在您评估确认不影响业务情况下,可勾选 我已悉知升级前置检查结果 忽略告警项,直接执行 Kubernetes 升级操作。
  4. 单击 确定,开始进行节点升级。
    (可选)升级过程中,可单击右侧 操作 列下的 查看详情,查看节点 Kubernetes 升级进度。
    alt
  5. 查看升级结果。状态 显示为 通过,表示已完成 Kubernetes 升级。
    alt
  6. (可选)若升级失败,请按照界面提示重新操作。若有更多问题,可提交 工单申请 获取技术支持。

升级后检查

升级完成后,请在集群的 总览 页面核验集群 Kubernetes 版本、节点 Kubernetes 版本、集群运行状态,同时检查您集群内的其他业务是否正常。若业务异常,请查看相关事件和日志信息以进一步处理,您也可以提交 工单申请 获取技术支持。

附录

VPC-CNI 网络模型集群中,当集群控制面从 Kubernetes v1.20 升级至 v1.24 后,需要重启从属于 vpc-cni 组件的 Cello DaemonSet,以获取新版本 EndpointSlices 资源。详细操作如下:

  1. 通过 kubectl 连接已升级的集群。详细操作,请参见 连接集群
  2. 执行如下命令,重启从属于 vpc-cni 组件的 Cello DaemonSet。
    kubectl rollout restart daemonset cello -n kube-system