k8s 小版本升级

众所周知k8s每一个月左右都会更新一次小版本所以在 Kubernetes 生态系统中,保持集群的版本更新是至关重要的。这不仅能够带来新的特性和改进,还能确保集群的安全性和稳定性。随着 Kubernetes 项目的快速发展,小版本的升级成为了集群维护的一个常规操作。

k8s集群:

我的版本是1.29.1 本次将k8s升级到1.29.2

一:配置软件源

我用的是ubuntu系统:

在/etc/apt/sources.list.d创建kubernetes.list文件

文件中配置是阿里云的软件源

deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.29/deb/ /

rhel系统:

复制代码
sudo tee /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

这样配置即可

二:升级前准备

将k8s控制节点设置为SchedulingDisabled状态

复制代码
kubectl drain master1  --ignore-daemonsets --force
    #--ignore-daemonsets: 忽略daemonset资源
    #--force  强制

执行完之后查看

kuberctl get nodes

三:master节点升级

先查看1.29.2的版本

apt-cache show kubeadm|grep 1.29.2

1.29.2-1.1这个就是我们要升级的版本

解除apt包管理器对kubeadm包的锁定状态

因为默认是为了防止自动升级然后是锁定状态,现在我们要升级所以要解开

apt-mark unhold kubeadm

升级软件包

apt-get update

安装kubeadm1.29.2

apt-get install -y kubeadm='1.29.2-1.1'

安装完之后继续锁定kubeadm软件包

apt-mark hold kubeadm

查看版本

kubeadm version

可以看到kuberadm已经升级到了1.29.2

验证升级计划

kubeadm upgrade plan

选择升级的版本进行升级

kubeadm upgrade apply v1.29.2 --etcd-upgrade=false

--etcd-upgrade=false #表示不升级etcd,etcd数据库还是单独升级比较稳妥一点

upgrade/successful\] SUCCESS! Your cluster was upgraded to "v1.29.2". Enjoy! 看到这个表示成功 ### 升级kubectl 和kubelet apt-mark unhold kubelet kubectl #解除锁定状态 apt-get update #升级软件包 apt-get install -y kubelet='1.29.2-1.1' 安装kubelet 1.29.2版本 apt-get install -y kubelet='1.29.2-1.1' 安装kubectl 1.29.2版本 apt-mark hold kubelet kubectl #锁定kubelet kubectl的软件包 ### 重启kubelet,查看master节点版本 ![](https://i-blog.csdnimg.cn/direct/cb588ebbf63148778955dfa7a9c557da.png) 可以看到已经是v1.29.2了 ### 将master恢复 kubectl uncordon master1 ## 四:node节点升级 ### 将node节点设置为SchedulingDisabled状态 kubectl drain node1 --ignore-daemonsets --force ### 登录到node节点,进行操作 apt-mark unhold kubelet kubectl #解除锁定状态 apt-get update #升级软件包 apt-get install -y kubelet='1.29.2-1.1' 安装kubelet 1.29.2版本 apt-get install -y kubelet='1.29.2-1.1' 安装kubectl 1.29.2版本 apt-mark hold kubelet kubectl #锁定kubelet kubectl的软件包 systemctl daemon-reload #重新加载 systemd 系统和服务管理器的配置 systemctl restart kubelet #重启kubelet ### 登录到master节点,将node状态恢复 kubectl uncordon node1 ### 五:查看状态 kubectl get node ![](https://i-blog.csdnimg.cn/direct/8a30e521a0cc4c279ecaa77563af278f.png) 可以看到都已经到1.29.2 查看kube-system命名空间下的pod ![](https://i-blog.csdnimg.cn/direct/66d3b5542457488590a5d05e354573c9.png) 也全是running状态

相关推荐
运维开发王义杰3 小时前
Kubernetes: 解构Karpenter NodePool, 云原生时代的弹性节点管理艺术
云原生·容器·kubernetes
FreeBuf_3 小时前
无恶意软件勒索:Storm-0501如何转向云原生攻击
大数据·云原生·storm
Clownseven3 小时前
Prometheus+Grafana入门教程:从零搭建云原生服务器监控系统
云原生·grafana·prometheus
上邪o_O3 小时前
从零开始部署 Kubernetes Dashboard:可视化管理你的集群
云原生·kubernetes
草履虫建模3 小时前
若依微服务一键部署(RuoYi-Cloud):Nacos/Redis/MySQL + Gateway + Robot 接入(踩坑与修复全记录)
redis·mysql·docker·微服务·云原生·nacos·持续部署
Light605 小时前
领码前瞻|国产操作系统闯关之路:从创新到应用
云原生·国产操作系统·ai赋能·自主可控·生态建设
草莓田田圈~5 小时前
kubernetes-ubuntu24.04操作系统部署k8s集群
云原生·容器·kubernetes
Brilliantee4045 小时前
K8s 二次开发漫游录
云原生·容器·kubernetes·operator·k8s二次开发
chenglin0166 小时前
架构设计——云原生与分布式系统架构
云原生·架构
007php0077 小时前
Go 语言常用命令使用与总结
java·linux·服务器·前端·数据库·docker·容器