用户指南

升级集群

最近更新时间:2020-03-09 15:00:13

操作场景

腾讯云容器服务提供升级 Kubernetes 版本的功能,您可通过此功能对运行中的 Kubernetes 集群进行升级。升级的过程为升级的前置检查、升级 Master 、升级 Node。

升级须知

  • 升级属于不可逆操作、请谨慎进行。
  • 请在升级集群前,查看集群下状态是否均为健康状态。若集群不正常,您可以自行修复,也可以通过 提交工单 联系我们协助您进行修复。
  • 升级集群时,需要先完成 Master 版本升级,再尽快完成 Node 版本升级,且升级过程中不建议对集群进行任何操作。
  • 仅支持向上升级 TKE 提供的最近 Kubernetes 版本,不支持跨多个版本升级(例如 1.8 跳过 1.10 直接升级至 1.12),且仅当集群内 Master 版本和 Node 版本一致时才可继续升级下一个版本。

操作步骤

升级集群分为升级集群的 Master kubernetes 版本和升级 Node Kubernetes 版本两个步骤。具体信息如下图所示:

升级 Master Kubernetes 版本

目前仅支持托管集群 Master 版本升级,且升级需要花费5 - 10分钟,在此期间您将无法操作您的集群。

注意事项

  • 升级前,请详细阅读 升级须知
  • 1.7.8 版本 TKE 集群,网络模式为 bridge,集群升级不会自动切换网络模式为 cni。
  • 集群升级不会切换 kube-dns 为 core-dns。
  • 创建集群时设置的部分特性,例如支持 ipvs。集群 Master 版本升级到 1.10 和 1.12 后,将不支持开通。
  • 存量的集群升级若 Master 版本是 1.10 以上版本,Node 节点版本在 1.8 版本以下, PVC 功能将不可用。

升级 Master Kubernetes 版本操作步骤

  1. 登录 TKE 控制台,选择左侧导航栏中的【集群】,进入 “集群管理” 页面。
  2. 选择需进行 Master Kubernetes 版本升级的集群 ID,进入该集群的 “Deployment” 页面。
  3. 选择左侧导航栏中的【基本信息】,进入集群“基础信息”页面。
  4. 在集群“基础信息”页面的集群信息模块,单击 Master 版本右侧的【升级】。如下图所示:
  5. 在弹出窗口中单击【确定】,等待升级完成。
    该示例集群 Kubernetes 版本升级前 Master 版本为1.10.5,升级完成后为 Master 1.12.4。如下图所示:

升级 Node Kubernetes 版本

集群 Master Kubernetes 版本升级完成后,集群列表页将显示该集群节点有可用升级。如下图所示:

您可通过以下步骤进行升级:

注意事项

  • 升级前,请详细阅读 升级须知
  • 当 Node 节点处于运行中时,可进行升级操作。

选择升级方式

升级 Node Kubernetes 版本支持重装滚动升级原地滚动升级两种升级方式。您可按需选择:

  • 重装滚动升级:采用重装节点的方式升级节点版本。支持大版本、小版本升级,例如 1.10 可升级至 1.12,1.14.3 可升级至 1.14.8。
  • 原地滚动升级:原地不重装,仅替换 Kubelet、kube-proxy 等组件。目前仅支持小版本升级,例如 1.14.3 可升级至 1.14.8。

重装滚动升级

基于重装的节点升级采用滚动升级的方式,同一时间只会对一个节点进行升级,只有当前节点升级成功才会进行下个节点的升级。如下图所示:

步骤描述如下:

  1. 升级前检查:对节点上的 Pod 进行驱逐前的检查。具体的升级前检查项如下:
    • 统计该节点所有工作负载的 Pod 个数,若驱逐节点后,任何工作负载的 Pod 数目变为0 ,则检查不通过,不能进行升级。
    • 以下系统控制面工作负载将被忽略:
      • l7-lb-controller
      • cbs-provisioner
      • hpa-metrics-server
      • service-controller
      • cluster-autoscaler
  2. 驱逐 Pod:首先将节点标记为不可调度,随后驱逐或者删除节点上所有 Pod。
  3. 移出节点:将节点从集群中移除。该步骤只进行基本的清理工作,不会删除节点在集群中的 Node 实例,所以节点的 label、taint 等属性都可保留。
  4. 重装节点:重装节点的操作系统,并重新安装新版本 kubelet。
  5. 升级后检查:检查节点是否 ready,是否为可调度的,并检查当前不可用 Pod 比例是否超过最大值。

重装滚动升级 Node Kubernetes 版本操作步骤

  1. 登录 TKE 控制台,选择左侧导航栏中的【集群】,进入 “集群管理” 页面。
  2. 选择需进行 Node Kubernetes 升级的集群 ID,进入该集群的 “Deployment” 页面。
  3. 选择左侧导航栏中的【基本信息】,并单击 Node Kubernetes 版本右侧的【升级】。如下图所示:
  4. 在“升级须知”步骤中,选择升级方式为重装滚动升级,仔细阅读升级须知。勾选【我已阅读并同意上述技术条款】,并单击【下一步】。如下图所示:
    注意:

    该升级方式将重装系统,原有数据将会被清除,请注意提前备份数据。

  5. 在“节点选择”步骤中,选择本批次需要升级的节点,并单击【下一步】。
  6. 在“升级设置”步骤中,按需填写节点信息,并单击【下一步】。
  7. 在“确认”步骤中,确认信息并单击【完成】即可开始升级。
  8. 查看节点升级进度, 直至所有节点升级完成。

原地滚动升级

节点原地升级采用滚动升级的方式,同一时间只会对一个节点进行升级,只有当前节点升级成功才会进行下个节点的升级。原地升级目前仅支持同一个大版本的不同小版本升级。如下图所示:

步骤描述如下:

  1. 组件更新:替换和重启节点上的 kubelet 和 kube-proxy 组件。
  2. 升级后检查:检查节点是否 ready,并检查当前不可用 Pod 比例是否超过最大值。

原地滚动升级 Node Kubernetes 版本操作步骤

  1. 登录容器服务控制台,选择左侧导航栏中的【集群】,进入 “集群管理” 页面。
  2. 选择需进行 Node Kubernetes 升级的集群 ID,进入该集群的 “Deployment” 页面。
  3. 选择左侧导航栏中的【基本信息】,并单击 Node Kubernetes 版本右侧的【升级】。如下图所示:
  4. 在“升级须知”步骤中,选择升级方式为原地滚动升级,仔细阅读升级须知。勾选【我已阅读并同意上述技术条款】,并单击【下一步】。如下图所示:
  5. 在“节点选择”步骤中,选择本批次需要升级的节点,单击【下一步】。
  6. 在“确认”步骤中,确认信息并单击【完成】即可开始升级。
  7. 查看节点升级进度, 直至所有节点升级完成。
目录