侧边栏壁纸
博主头像
逢尔Seyu 博主等级

星光不负赶路人,时光不负追梦人

  • 累计撰写 30 篇文章
  • 累计创建 20 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Kubernetes版本升级

逢尔Seyu
2025-07-01 / 0 评论 / 0 点赞 / 16 阅读 / 0 字

注意事项:

升级前最好备份所有组件及数据,例如etcd

不要跨两个大版本进行升级,可能会存在版本bug,如:
1.22.17–>1.23.17 可以
1.22.17–>1.24.17 不可以

跨多个版本的可以逐个版本进行升级。

前置条件:

配置YUM源

[root@master~] # cat /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

更新YUM包

[root@master~] # yum clean all
......

[root@master~] # yum makecache
......

安装containerd

......

第一步:检查当前集群版本

[root@master~] # kubectl get node
NAME     STATUS   ROLES                  AGE    VERSION
master   Ready    control-plane,master   209d   v1.22.17
node1    Ready    <none>                 209d   v1.22.17
node2    Ready    <none>                 209d   v1.22.17

目前我的版本是v1.22.17,官网最新版本已经到1.28.2。升级到最新版本需要逐步升级:v1.22.17–>v1.23.17–>v1.24.17–>v1.25.17–>v1.26.17–>v1.27.17->v1.28.2,共升级6次。

第二步:查询要升级的版本

我们现在从1.22升级到1.23版本,所以需要找到v.1.23.17这一个的版本号

[root@master~] # yum list --showduplicates kubeadm --disableexcludes=kubernetes | grep 1.23

第三步:开始升级

3.1:先升级master节点

3.1.1:下载1.23.17版本的kubeadm

如果有多个master节点,那么每个master节点都要下载

yum install -y kubeadm-1.23.17-0 --disableexcludes=kubernetes

3.1.2:获取执行计划

如果有多个master节点,那么在任意一个master节点执行即可

kubeadm upgrade plan

只列出了可以升级的组件:

Upgrade to the latest stable version:

COMPONENT                 CURRENT    TARGET
kube-apiserver            v1.22.17   v1.23.17
kube-controller-manager   v1.22.17   v1.23.17
kube-scheduler            v1.22.17   v1.23.17
kube-proxy                v1.22.17   v1.23.17
CoreDNS                   v1.8.4     v1.8.6
etcd                      3.5.6-0    3.5.6-0

3.1.3:据上面输出提示,执行返回命令以升级

如果有多个master节点,那么在步骤3.1.2挑选的节点上执行即可

kubeadm upgrade apply v1.23.17

......

[upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.23.17". Enjoy!

[upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so.

注意:因为我是单master节点,所以就在这一个主节点上执行就可以,如果您是多master节点,在另外的master节点上执行kubeadm upgrade node

kubeadm upgrade node

3.1.4:所有master节点分别升级kubelet和kubeadm


#先驱逐节点的pod
kubectl drain master --ignore-daemonsets

#下载kubelet和kubectl
yum install -y kubelet-1.23.17-0 kubectl-1.23.17-0 --disableexcludes=kubernetes

#重启
systemctl daemon-reload
systemctl restart kubelet

3.2:升级node节点

3.2.1:在所有的node节点上下载1.23.17版本的kubeadm

yum install -y kubeadm-1.23.17-0 --disableexcludes=kubernetes

3.2.2:在所有node节点上升级kubelet的配置

kubeadm upgrade node

3.2.3:升级 kubelet 和 kubectl


#先驱逐节点的pod
kubectl drain node1 --ignore-daemonsets

#下载kubelet和kubectl
yum install -y kubelet-1.23.17-0 kubectl-1.23.17-0 --disableexcludes=kubernetes

#重启
systemctl daemon-reload
systemctl restart kubelet

第四步:检查集群的状态和版本

[root@master~] # kubectl get node
NAME     STATUS   ROLES                  AGE    VERSION
master   Ready    control-plane,master   209d   v1.23.17
node1    Ready    <none>                 209d   v1.23.17
node2    Ready    <none>                 209d   v1.23.17

0

评论区