集群升级
本指南介绍如何升级由 Cluster API 管理的 Kubernetes 集群,以实现最小停机时间,同时保持稳定性和数据完整性。
目录
Overview
集群升级涵盖多个组件,并遵循结构化的方法以确保系统可靠性:
- Control Plane Upgrades:更新 Kubernetes 控制平面组件及其底层基础设施
- Worker Node Upgrades:使用新的机器镜像和 Kubernetes 版本升级工作节点
- Infrastructure Updates:修改虚拟机规格、存储和网络配置
Cluster API 通过内置的安全机制协调声明式滚动更新。
升级依赖于 Cluster API 的滚动更新机制。在滚动更新期间,任何先前附加的磁盘都会被移除,并在新创建的机器上替换为新磁盘。请确保集群功能或工作负载不依赖于原始磁盘上的数据。
Control Plane Upgrades
控制平面升级包括更新 Kubernetes API 服务器、etcd、调度器和控制器管理器,以及底层虚拟机基础设施。
Infrastructure Image Updates
升级控制平面节点的底层机器镜像可提供安全补丁、性能改进和系统组件更新。
操作步骤
-
创建更新的机器模板
复制
KubeadmControlPlane引用的现有DCSMachineTemplate并修改所需规格: -
修改模板规格
修改新模板:
- 设置
metadata.name为<new-template-name> - 根据需要更新:
spec.template.spec.vmTemplateNamespec.template.spec.dcsMachineCpuSpec.quantityspec.template.spec.dcsMachineMemorySpec.quantityspec.template.spec.dcsMachineDiskSpec- 等等
- 设置
-
部署更新的模板
应用新的机器模板:
-
更新控制平面引用
修改
KubeadmControlPlane资源以引用新模板: -
监控滚动更新
控制平面将自动执行滚动更新:
Kubernetes Version Upgrades
升级 Kubernetes 版本涉及更新控制平面软件和支持的虚拟机镜像。
前提条件
- 验证目标 Kubernetes 版本与现有工作负载的兼容性
- 确保虚拟机模板支持目标 Kubernetes 版本
- 审查 Kubernetes 升级路径和版本偏差策略
操作步骤
-
更新虚拟机模板引用
更新引用的
DCSMachineTemplate中的spec.template.spec.vmTemplateName。新的虚拟机模板必须匹配目标 Kubernetes 版本。 -
更新控制平面版本
修改
KubeadmControlPlane资源中的spec.version字段(必需)。可根据需要调整相关字段(例如,滚动策略、排空/删除超时,或引用的基础设施模板)以符合新版本和升级策略。 -
验证升级进度
监控滚动升级过程:
Worker Node Upgrades
工作节点升级通过 MachineDeployment 资源管理。
有关详细的工作节点操作步骤,请参见升级 Kubernetes 版本部分。