Debian系统升级K8S集群组件指南
/etc/kubernetes/目录)和etcd数据(/var/lib/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(kubectl get nodes),所有Pod处于Running状态(kubectl get pods --all-namespaces),无未完成作业或异常事件。sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y
编辑Kubernetes源列表文件(/etc/apt/sources.list.d/kubernetes.list),替换为最新稳定版本的源地址(以1.29为例):
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.29/deb/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.29/deb/RPM-GPG-KEY-kubernetes-1.29.0
EOF
更新软件包列表:
sudo apt update
sudo apt install -y kubeadm=1.29.10-00 kubelet=1.29.10-00 kubectl=1.29.10-00 --disableexcludes=kubernetes
sudo kubeadm upgrade plan
sudo kubeadm upgrade apply v1.29.10
kubectl drain k8s-master --ignore-daemonsets --delete-emptydir-data
apt安装):wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubelet
wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubectl
chmod +x kubelet kubectl
sudo mv kubelet /usr/local/bin/ && sudo mv kubectl /usr/local/bin/
sudo systemctl daemon-reload && sudo systemctl restart kubelet
kubectl uncordon k8s-master
kubectl drain k8s-node1 --ignore-daemonsets --delete-emptydir-data
sudo apt install -y kubeadm=1.29.10-00 --disableexcludes=kubernetes
sudo kubeadm upgrade node
kubectl uncordon k8s-node1
Ready:kubectl get nodes
kubectl get componentstatuses
Error或CrashLoopBackOff状态):kubectl get pods --all-namespaces
kubeadm upgrade revert命令回滚到上一版本,并恢复备份数据。