在 CentOS 上升级 Kubernetes(k8s)部署,通常分为 kubeadm 方式 和 二进制方式。下面以 最常见的 kubeadm 部署 为例说明(CentOS 7/8 通用思路)。
kubectl version
kubeadm version
yum list --showduplicates kubeadm --disableexcludes=kubernetes
⚠️ 不能跨多个大版本升级
例如:1.24 → 1.25 → 1.26(一次升一个 minor 版本)
# etcd 数据
ETCDCTL_API=3 etcdctl snapshot save snapshot.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
# 集群资源
kubectl get all -A -o yaml > cluster-backup.yaml
yum install -y kubeadm-1.26.x-0 --disableexcludes=kubernetes
kubeadm upgrade plan
kubeadm upgrade apply v1.26.x
yum install -y kubelet-1.26.x-0 kubectl-1.26.x-0 --disableexcludes=kubernetes
systemctl daemon-reload
systemctl restart kubelet
一台一台升,不要同时升
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data
yum install -y kubeadm-1.26.x-0 --disableexcludes=kubernetes
kubeadm upgrade node
yum install -y kubelet-1.26.x-0 --disableexcludes=kubernetes
systemctl daemon-reload
systemctl restart kubelet
kubectl uncordon <node-name>
kubectl get nodes
kubectl version
所有节点版本应一致。
如果你能告诉我:
我可以给你 精确到命令的升级方案。