防止kubeadm部署的kubernetes因kubeadm自动更新导致集群故障
在 CentOS 或 Ubuntu 系统上,通过适当的措施,可以防止 kubeadm 及其相关组件在执行系统更新时自动升级,从而避免 Kubernetes 集群故障。
背景:执行 yum update 后,如果 kubeadm、kubelet 和 kubectl 等组件自动升级,可能会导致 Kubernetes 集群故障。为了防止这种情况发生,我们需要采取措施锁定这些组件的版本。
CentOS 系统
在 CentOS 系统上,可以使用 yum-plugin-versionlock 来锁定软件包版本,从而防止它们被更新。
- 安装 yum-plugin-versionlock
首先,安装 yum-plugin-versionlock 插件:
sudo yum install yum-plugin-versionlock
锁定 kubeadm、kubelet 和 kubectl 的版本
- 锁定 kubeadm、kubelet 和 kubectl 的版本
使用 yum versionlock 命令锁定指定版本的 kubeadm、kubelet 和 kubectl:
sudo yum versionlock kubeadm-1.18.19-0 kubelet-1.18.19-0 kubectl-1.18.19-0
- 验证版本锁定
执行以下命令,验证是否成功锁定了软件包版本:
yum versionlock list
你应该能看到类似以下的输出,显示锁定的软件包版本:
0:kubeadm-1.18.19-0.*
0:kubelet-1.18.19-0.*
0:kubectl-1.18.19-0.*
Ubuntu 系统
在 Ubuntu 系统上,可以使用 apt-mark 命令来锁定软件包,从而防止它们被更新。
- 锁定 kubeadm、kubelet 和 kubectl 的版本
使用 apt-mark hold 命令锁定 kubeadm、kubelet 和 kubectl:
sudo apt-mark hold kubeadm kubelet kubectl
- 验证版本锁定
执行以下命令,验证是否成功锁定了软件包版本:
apt-mark showhold
你应该能看到类似以下的输出,显示锁定的软件包:
kubeadm
kubelet
kubectl
评论区