k8s升级组件方法(k8s升级方案)

k8s升级组件方法(k8s升级方案)div id navCategory div 搭建 kubernetes 集群的方式有很多种 比如二进制 kubeadm RKE Rancher 等 k8s 集群升级方式也各有千秋 本文主要介绍使用 kubeadm 方式搭建的 k8s 集群和二进制搭建的集群升级方法 Kubernetes 版本以 x y z 表示 其中 x 是主要版本 y

大家好,我是讯享网,很高兴认识大家。



 <div id="navCategory"></div> 

讯享网

搭建kubernetes集群的方式有很多种,比如二进制,kubeadm,RKE(Rancher)等,k8s集群升级方式也各有千秋,本文主要介绍使用kubeadm方式搭建的k8s集群和二进制搭建的集群升级方法。

Kubernetes 版本以 x.y.z 表示,其中 x 是主要版本, y 是次要版本,z 是补丁版本,遵循语义版本控制术语。升级版本时不建议跨多个次要版本升级,根据官方建议以跨1个次要版本升级或者跨多个补丁版本升级。例如:从1.20.1升级至1.20.15、从1.20.X升级1.21.X。

升级顺序如下步骤:

  1. 升级kubeadm版本。
  2. 备份ETCD数据。
  3. 升级master节点各组件。
  4. 升级node节点组件。
  5. 升级完成集群验证

节点名称

节点IP

版本

升级版本

备注

k8s-master

192.168.60.20

v1.24.17

v1.25.14

master节点

k8s-node01

192.168.60.21

v1.24.17

v1.25.14

node节点

k8s-node02

192.168.60.20

v1.24.17

v1.25.14

node节点

查看当前可升级的版本

查看当前kubeadm版本

升级kubeadm版本

验证


讯享网

4.1验证升级计划,检查当前集群是否可被升级

根据以上结果可以看到最高可以升级到 v1.25.16 版本,我们需要升级到v1.25.14版本是允许的;只要可允许升级的最高版本高于你的目标版本,就可以升级。

4.2将master节点升级到v1.25.14版本

注意:kubeadm upgrade命令也会自动对kubeadm在节点上所管理的证书执行续约操作。

如果需要略过证书续约操作,可以使用标志--certificate-renewal=false。

4.3升级kubectl和kubelet

此时查看版本发现master节点的版本已经升级成功了

工作节点上的升级过程应该一次执行一个节点,或者一次执行几个节点,以不影响运行工作负载所需的最小容量。

查看各个节点版本是否正常升级。

升级顺序如下步骤:

  1. etcd数据库备份升级。
  2. 升级master节点组件。
  3. 升级node节点组件。
  4. 升级calico和CoreDNS组件。
  5. 验证集群。

节点名称

节点IP

版本

升级版本

备注

k8s-master

10.3.248.136

v1.24.4

v1.25.14

master节点(kube-apiserver、controller、scheduler、kubelet、kube-proxy)

k8s-node02

10.3.248.144

v1.24.4

v1.25.14

node节点(kubelet、kube-proxy)

mongodb

10.3.248.143

v1.24.4

v1.25.14

node节点(kubelet、kube-proxy)

ocr

10.3.248.139

v1.24.4

v1.25.14

node节点(kubelet、kube-proxy)

2.1查看etcd集群的状态

2.2.etcd数据备份

备份时选择主节点进行备份数据

2.3etcd数据库升级时先升级从节点然后再升级主节点。

可通过k8s官网升级changelog查看k8s版本对应的etcd版本。

官网地址https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG

可以查看到升级k8sv1.25.14版本需要的etcd版本是3.5.9

2.4升级etcd版本

其余节点升级方式同上,升级完成后进行版本查看正常升级即可。

升级完成后如下:

二进制包下载地址https://cdn.dl.k8s.io/release/v1.25.14/kubernetes-server-linux-amd64.tar.gz

3.1升级kube-apiserver组件

3.2升级kube-controller-manager组件

3.3升级kube-scheduler组件

3.4升级kubectl

注意:如果使用了本地存储的情况下,可能无法排空当前节点,可能会出现如下报错

此时我们选择就地升级即不用排空节点,直接升级node节点组件,可能会影响本地pod重启一次,如果升级时间较短的话,pod并不会重启。

4.1升级kubelet组件

4.2升级kube-proxy组件

恢复当前节点上的Pod调度。

其它node节点升级操作同上,升级完成kubelet和kube-proxy组件后,通过master节点查看版本已经升级

calico和coreDNS组件版本可根据实际需求进行版本升级,也可以不升级。

升级时根据部署方决定,如果是yaml方式进行部署的,下载最新的yaml文件和镜像修改对应参数重启pod即可。

calico官网链接:

Install Calico networking and network policy for on-premises deployments | Calico Documentation (tigera.io)

coreDNS:

kubernetes/cluster/addons/dns/coredns/coredns.yaml.base at master · kubernetes/kubernetes · GitHub

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

小讯
上一篇 2025-04-19 09:47
下一篇 2025-05-18 10:24

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/150071.html