Kubernetes 40天挑战(第34天)

💡 原文英文,约900词,阅读约需3分钟。
📝

内容提要

本文介绍了使用kubeadm升级多节点Kubernetes集群的步骤,包括修复故障节点、逐步升级控制平面节点和工作节点,以及注意版本兼容性和包管理。文章总结了kubeadm升级的工作原理。

🔎

延伸解读

版本兼容性:不可跳过的升级路径

Kubernetes 升级必须逐个次版本进行,不能跳过任何次版本。例如,从 1.28.2 升级到 1.29.3 后,才能继续升级到 1.30.2。同时,Kubernetes 仅支持最近三个次版本,这意味着更早的版本将不再获得错误修复和功能更新。因此,集群管理员需要定期升级,以保持集群在支持范围内。

升级策略选择:权衡停机与复杂度

文章提到了三种升级策略:一次性升级、滚动更新和蓝绿部署。一次性升级会导致停机;滚动更新逐个节点进行,减少停机时间;蓝绿部署则搭建新集群并迁移工作负载。选择策略时需根据业务对可用性的要求以及资源情况来决定。

故障节点处理:drain 与 uncordon 的影响

当工作节点故障时,使用 kubectl drain 可以驱逐工作负载,节点被标记为不可调度。由 Deployment 控制的 Pod 会在其他节点重新调度,但像 MySQL 这样的有状态 Pod 及其数据配置可能会丢失。修复节点后,需执行 uncordon 使其重新可调度,但节点只会接受新的工作负载,不会自动恢复之前被驱逐的 Pod。

kubeadm 升级机制:apply 与 node 的分工

kubeadm upgrade apply 在主控制平面节点上执行,会检查集群可升级状态、强制版本偏差策略、升级控制平面组件,并应用新的 CoreDNS 和 kube-proxy 清单。kubeadm upgrade node 则在附加控制平面节点和工作节点上运行,负责获取集群配置、升级 kubelet 配置,并在控制平面节点上更新静态 Pod 清单。升级后需重新加载并重启 kubelet。

❓

Q&A

如何使用kubeadm升级多节点Kubernetes集群?

使用kubeadm升级多节点Kubernetes集群的步骤包括修复故障节点、逐步升级控制平面节点和工作节点,并注意版本兼容性。

在升级Kubernetes集群时需要注意哪些版本兼容性问题?

在升级时不能跳过小版本升级,Kubernetes仅支持最后三个小版本。

Kubernetes集群的升级策略有哪些?

升级策略包括一次性升级、滚动更新和蓝绿部署。

如何检查Kubernetes集群是否处于可升级状态?

可以使用kubeadm upgrade apply命令检查API服务器、节点状态和控制平面健康。

升级控制平面节点时需要更改什么?

在升级控制平面节点时,需要更改软件包仓库以获取最新版本。

升级完成后需要执行哪些操作?

升级完成后需要重新加载和重启kubelet。

🏷️

标签

➡️

继续阅读