在 CentOS 上部署的 Kubernetes(k8s)升级,通常分为 kubeadm 方式 和 二进制方式。大多数 CentOS 生产环境使用 kubeadm,下面以 kubeadm + CentOS 7/8 为例说明。
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
# kube config
cp -r /etc/kubernetes /etc/kubernetes-bak
kubectl get nodes
kubectl get pods -A
kubectl drain <master-node> --ignore-daemonsets --delete-emptydir-data
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
yum list --showduplicates kubeadm | sort -r
yum install -y kubeadm-1.25.6-0
kubeadm upgrade plan
kubeadm upgrade apply v1.25.6
yum install -y kubelet-1.25.6-0 kubectl-1.25.6-0
systemctl daemon-reload
systemctl restart kubelet
kubectl uncordon <master-node>
kubectl drain <worker-node> --ignore-daemonsets --delete-emptydir-data
yum install -y kubeadm-1.25.6-0
kubeadm upgrade node
yum install -y kubelet-1.25.6-0 kubectl-1.25.6-0
systemctl daemon-reload
systemctl restart kubelet
kubectl uncordon <worker-node>
kubectl get nodes
kubectl version
systemctl status containerd
升级方式不同(手动替换二进制 + 重启服务),如果你是这样部署的,可以告诉我,我给你 二进制升级步骤。
如果你能补充:
我可以给你 精确升级命令。