<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。
升级顺序如下步骤:
- 升级kubeadm版本。
- 备份ETCD数据。
- 升级master节点各组件。
- 升级node节点组件。
- 升级完成集群验证
节点名称
节点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节点的版本已经升级成功了

工作节点上的升级过程应该一次执行一个节点,或者一次执行几个节点,以不影响运行工作负载所需的最小容量。
查看各个节点版本是否正常升级。
升级顺序如下步骤:
- etcd数据库备份升级。
- 升级master节点组件。
- 升级node节点组件。
- 升级calico和CoreDNS组件。
- 验证集群。
节点名称
节点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
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

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