K8s升级1.29升级到1.29.8

2024-9-13 / 0 评论 / 19 阅读

因为Cks考试基于1.30,而之前的模板机一直是1.29,为一更适应考试决定升级到1.30.
查看系统系统:lsb_release -a
升级系统:sudo apt update
一、升级kubeadm

root@xianchaomaster1:~# apt-cache madison kubeadm

K8s升级1.29升级到1.29.8
没有找到1.30(因为没有修改软件包地址,后面有提到),先升级到1.29.8
调整节点为不可调度状态
kubectl cordon xianchaomaster1
腾空节点:
kubectl drain xianchaomaster1 --ignore-daemonsets

root@xianchaomaster1:~# apt-get update && apt-get install -y kubeadm='1.29.8-1.1' && apt-mark hold kubeadm
如下图:
K8s升级1.29升级到1.29.8

查看升级计划:
root@xianchaomaster1:~# kubeadm upgrade plan
K8s升级1.29升级到1.29.8
K8s升级1.29升级到1.29.8

查看节点状态:
root@xianchaomaster1:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
xianchaomaster1 Ready,SchedulingDisabled control-plane 133d v1.29.0
xianchaonode1 Ready 133d v1.29.0

执行升级命令:

#升级 etcd 时的注意事项,由于 kube-apiserver 静态 Pod 始终在运行(即使你已经执行了腾空节点的操作), 因此当你执行包括 etcd 升级在内的 kubeadm 升级时,对服务器正在进行的请求将停滞, 因为要重新启动新的 etcd 静态 Pod。作为一种解决方法,可以在运行 kubeadm upgrade apply 命令之前主动停止 kube-apiserver 进程几秒钟。这样可以允许正在进行的请求完成处理并关闭现有连接, 并最大限度地减少 etcd 停机的后果。执行以下命令killall -s SIGTERM kube-apiserver # 触发 kube-apiserver 体面关闭sleep 20 # 等待一下,以完成进行中的请求kubeadm upgrade ... # 执行 kubeadm 升级命令

root@xianchaomaster1:~# kubeadm upgrade apply v1.29.8
升级成功最后如下图
K8s升级1.29升级到1.29.8

二、升级kubelet、kubectl
命令:
sudo apt-mark unhold kubelet kubectl &&apt-get update &&apt-get install -y kubelet='1.29.8-1.1' kubectl='1.29.8-1.1'&&apt-mark hold kubelet kubectl
重启kubelet,检测是否升级成功
K8s升级1.29升级到1.29.8

如上图,master节点已成功升级到1.29.8,
解除节点不可调度,完成控制节点升级
K8s升级1.29升级到1.29.8

三、工作节点升级:
1、在控制节点上操作:调整节点调度状态,腾空工作节点
K8s升级1.29升级到1.29.8
2、工作节点上升级软件包,
sudo apt update
sudo apt-cache madison kubeadm
K8s升级1.29升级到1.29.8

升级kubeadm
root@xianchaonode1:~# apt-mark unhold kubeadm && apt-get install -y kubeadm='1.29.8-1.1'&& apt-mark hold kubeadm
K8s升级1.29升级到1.29.8

返加控制节点执行升级节点命令:
kubectl upgrade node
最后有提示升级成功
K8s升级1.29升级到1.29.8

返回工作节点升级kubelet,kubectl
root@xianchaonode1:~# apt-mark unhold kubelet kubectl && apt-get update && apt-get install -y kubelet='1.29.8-1.1' kubectl='1.29.8-1.1'&&apt-mark hold kubelet kubectl
K8s升级1.29升级到1.29.8

然后kubelet
K8s升级1.29升级到1.29.8
返回控制节点查看节点状态,节点正常刚解除节点不可调试状态,恢复正常。
K8s升级1.29升级到1.29.8

检查节点资源是否正常
K8s升级1.29升级到1.29.8

最后:
升级到1.30则采用类似方法,
需要修改软件仓库的版本信息才以下:
修改文件路径:/etc/apt/sources.list.d/kubernetes.list
如果是1.29的话,应该是这样的

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

如果这个不修改是没办法获取到1.30版本的升级包,所以必须把软件包仓库地址中1.29修改成为想要升级的版本,
本次升级到1.30
所以修改为:
deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/ /
保存退出
然后可以获取1.30的版本包
如下:apt update &&apt-cache madison kubeadm

K8s升级1.29升级到1.29.8

同理,别忘记了修改工作节点上的软件包仓库地址
其他操作类似。

评论一下?

OωO
取消