在 CentOS 上升级 Kubernetes(k8s)通常是指在已有集群上做版本升级(不是重装)。下面按最常用、最稳妥的方式(kubeadm 集群)说明。
kubectl version
kubeadm version
⚠️ 不能跨多个大版本直接升
官方升级策略:
一次只能升级 一个小版本
# 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 drain <master-node> --ignore-daemonsets
yum install -y kubeadm-1.25.0-0 --disableexcludes=kubernetes
kubeadm upgrade plan
kubeadm upgrade apply v1.25.0
yum install -y kubelet-1.25.0-0 kubectl-1.25.0-0 --disableexcludes=kubernetes
systemctl daemon-reload
systemctl restart kubelet
kubectl uncordon <master-node>
kubectl drain <worker-node> --ignore-daemonsets
yum install -y kubeadm-1.25.0-0 --disableexcludes=kubernetes
kubeadm upgrade node
yum install -y kubelet-1.25.0-0 kubectl-1.25.0-0 --disableexcludes=kubernetes
systemctl daemon-reload
systemctl restart kubelet
kubectl uncordon <worker-node>
kubectl get nodes
kubectl version
检查:
containerd --version
如果你用的是:
升级方式不同,可告诉我你的部署方式。
如果你愿意,可以告诉我:
我可以给你精确到命令的升级方案。