不宕机升级集群

v1.1.0 开始可用

概述

RKE v1.1.0+优化了升级集群的流程,提供了不宕机升级的功能。本节讲述了如何在使用rke up命令升级集群的时候保证集群内的 pods 可用,实现不宕机升级。

不宕机升级的功能的工作原理是批量升级 worker 节点的同时,保证工作负载在至少一个节点上运行,详情请参考RKE v1.1.0+ 升级工作原理

实现不宕机升级,需要在升级集群的过程中始终保持工作负载在至少一个节点上可用,并且保持工作负载所需的所有重要的插件(如 Ingress 和 DNS)可用。在不宕机升级的过程中,开发人员可以持续将应用程序部署到集群,用户也可以持续使用服务而不会受到干扰。不宕机升级对于集群架构和 Kubernetes 版本也有要求。具体要求请参考下文。

Kubernetes 版本要求

升级集群现有的 Kubernetes 时,必须是从一个小版本升级到另一个小版本,例如从 v1.16.0 升级到 v1.17.0,或是升级到同一个小版本内的补丁版,例如从 v1.16.0 升级到 v1.16.1。

集群要求

集群必须满足以下条件:

  1. 集群具有至少 3 个 etcd 节点。
  2. 集群具有至少 2 个 controlplane 节点。
  3. 集群具有至少 2 个 worker 节点。
  4. 集群内的 Ingress 和 DNS 等插件可以被至少一个节点调度,工作负载部署在这个节点上。

工作负载要求

工作负载必须满足以下条件:

  1. 应用和 Ingress 部署在至少一个节点上。
  2. The applications must make use of liveness and readiness probes.
  3. 应用必须使用存活探针(liveness probes)和就绪探针(readiness probes)。

相关链接

请参考Kubernetes 官方文档,获取使用 node selector 将 pod 分配给节点的操作指导。

配置插件副本的操作指导请参考配置升级策略

最后由 yzeng25更新 于