K8S在Debian上的更新与升级流程是怎样的
导读:K8S在Debian上的更新与升级流程 一、升级前准备 备份关键数据:备份/etc/kubernetes/目录(包含集群配置文件)和/var/lib/etcd/目录(etcd数据库数据)。可使用etcdctl工具备份etcd数据,命令示例...
K8S在Debian上的更新与升级流程
一、升级前准备
- 备份关键数据:备份
/etc/kubernetes/
目录(包含集群配置文件)和/var/lib/etcd/
目录(etcd数据库数据)。可使用etcdctl
工具备份etcd数据,命令示例:
etcdctl snapshot save /data/etcd/etcd_bak.db --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key
。 - 检查集群状态:确保所有节点状态为
Ready
,所有Pod处于Running
状态;确认无未完成的作业或任务。 - 验证兼容性:阅读Kubernetes官方升级指南,确认新版本与当前集群组件(如CNI驱动、存储插件)兼容;建议仅升级小版本(如1.27.x→1.28.x)或相邻大版本(如1.27.x→1.28.x),避免跳过大版本。
- 更新系统包:运行
sudo apt update & & sudo apt upgrade -y
,确保Debian系统和现有软件包为最新版本。
二、升级Kubernetes软件源
编辑Kubernetes专用源文件(如/etc/apt/sources.list.d/kubernetes.list
),指向目标版本的稳定仓库。示例(以1.28.x为例):
cat <
<
EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/deb/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/deb/RPM-GPG-KEY-kubernetes-1.28.0
EOF
更新软件包列表:sudo apt update
。
三、升级控制平面节点(Master节点)
- 安装指定版本的Kubeadm、Kubelet、Kubectl:使用
--disableexcludes=kubernetes
强制安装指定版本(如1.28.2),避免自动升级到其他版本。命令示例:
sudo apt install -y kubeadm=1.28.2-0 kubeadm-config=1.28.2-0 kubelet=1.28.2-0 kubectl=1.28.2-0 --disableexcludes=kubernetes
。 - 检查升级计划:运行
sudo kubeadm upgrade plan
,查看当前版本到目标版本的兼容性及需执行的步骤。 - 执行升级:根据升级计划运行
sudo kubeadm upgrade apply v1.28.2
,完成控制平面组件(如kube-apiserver、kube-controller-manager、kube-scheduler)的升级。 - 重启Kubelet:
sudo systemctl daemon-reload & & sudo systemctl restart kubelet
,使变更生效。 - 解除节点保护:
kubectl uncordon k8s-master
,允许Master节点重新调度Pod。
四、升级工作节点(Node节点)
- 逐个升级节点:每次仅升级一个工作节点,确保集群高可用。
- 腾空节点:
kubectl drain k8s-node1 --ignore-daemonsets
,将节点标记为不可调度并驱逐所有Pod(守护进程集管理的Pod除外)。 - 升级Kubeadm和Kubelet:在工作节点上运行与Master节点相同的命令,安装指定版本的Kubeadm和Kubelet。
- 升级节点:
sudo kubeadm upgrade node
,同步节点配置至新版本。 - 重启Kubelet:
sudo systemctl daemon-reload & & sudo systemctl restart kubelet
。 - 解除节点保护:
kubectl uncordon k8s-node1
,恢复节点调度功能。
五、升级后验证
- 检查集群状态:
kubectl get nodes
,确认所有节点状态为Ready
且版本已更新。 - 检查组件健康:
kubectl get componentstatuses
,确保kube-apiserver、kube-controller-manager等核心组件状态正常。 - 验证Pod运行:
kubectl get pods --all-namespaces
,确认所有Pod处于Running
或Completed
状态。 - 检查CNI驱动:若使用了第三方CNI驱动(如Calico、Flannel),需确认其版本与新版本Kubernetes兼容,必要时升级CNI驱动。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: K8S在Debian上的更新与升级流程是怎样的
本文地址: https://pptw.com/jishu/731548.html