升级 k8s 集群(1.28 -> 1.29)
参考官方文档:https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/
更新软件包管理器
bash
# This overwrites any existing configuration in /etc/yum.repos.d/kubernetes.repo
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF
升级 kubeadm 版本
bash
# 查看可用版本
sudo yum list --showduplicates kubeadm --disableexcludes=kubernetes
# 安装
sudo yum install -y kubeadm --disableexcludes=kubernetes
# 验证
kubeadm version
使用 kubeadm 升级组件
第一个 control plane 节点:
bash
sudo kubeadm upgrade plan
sudo kubeadm upgrade apply 1.29.4
其他节点:
bash
sudo kubeadm upgrade node
下线节点
bash
kubectl drain <node-name> --ignore-daemonsets
升级 kubelet
bash
sudo yum install -y kubelet --disableexcludes=kubernetes
sudo systemctl daemon-reload && sudo systemctl restart kubelet
kubelet --version
(可选)升级 kubectl
bash
sudo yum install -y kubectl --disableexcludes=kubernetes
重新上线节点
bash
kubectl uncordon <node-name>