k8s 版本升级 1.25.0 -> 1.25.1
升级之前 K8s VERSION 1.25.0, 目标 v1.25.0-0 -> v1.25.1-0:
# 升级之前 v1.25.0 :
[root@k8s-master-1 ~]# kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s-master-1 Ready control-plane 39d v1.25.0 192.168.3.101 <none> CentOS Linux 7 (Core) 3.10.0-1160.el7.x86_64 docker://20.10.21
k8s-node-1 Ready <none> 39d v1.25.0 192.168.3.104 <none> CentOS Linux 7 (Core) 3.10.0-1160.el7.x86_64 docker://20.10.21
k8s-node-2 Ready <none> 39d v1.25.0 192.168.3.105 <none> CentOS Linux 7 (Core) 3.10.0-1160.el7.x86_64 docker://20.10.21
k8s-node-3 Ready <none> 39d v1.25.0 192.168.3.106 <none> CentOS Linux 7 (Core) 3.10.0-1160.el7.x86_64 docker://20.10.21
# 升级之后 v1.25.1 :
[root@k8s-master-1 ~]# kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s-master-1 Ready control-plane 39d v1.25.1 192.168.3.101 <none> CentOS Linux 7 (Core) 3.10.0-1160.el7.x86_64 docker://20.10.21
k8s-node-1 Ready <none> 39d v1.25.1 192.168.3.104 <none> CentOS Linux 7 (Core) 3.10.0-1160.el7.x86_64 docker://20.10.21
k8s-node-2 Ready <none> 39d v1.25.1 192.168.3.105 <none> CentOS Linux 7 (Core) 3.10.0-1160.el7.x86_64 docker://20.10.21
k8s-node-3 Ready <none> 39d v1.25.1 192.168.3.106 <none> CentOS Linux 7 (Core) 3.10.0-1160.el7.x86_64 docker://20.10.21
升级管理节点(master) 9步 :
1 查找最新版本号:
yum list --showduplicates kubeadm
2 升级kubeadm:
yum install -y kubeadm-1.25.1-0
3 驱逐Node上的pod,并设置为不可调度(有啥提示参数要加的都加上):
kubectl drain k8s-master-1 --ignore-daemonsets
4 检查集群是否可以升级,并获取可以升级的版本(直接升级1.25的最新版本 可以忽略版本号,如果是升级到次新版本 主要要加上版本号):
kubeadm upgrade plan 1.25.1-0
5 根据提示进行下一步操作:
kubeadm upgrade apply v1.25.1 --etcd-upgrade=false #--etcd-upgrade=false 默认为true即升级Etcd,用此参数不升级Etcd.
6 升级kubectl 和 kubelet:
yum install kubectl-1.25.1 kubelet-1.25.1 -y
7 重启kubelet:
systemctl daemon-reload
systemctl restart kubelet
8 取消不可调度,重新上线:
kubectl uncordon k8s-master-1
9 查看升级后的master版本:
kubectl get node -o wide
升级工作节点(node)
1 升级kubeadm:
yum install -y kubeadm-1.25.1
2 驱逐Node节点上的pod,且不可调度(master 端操作):
kubectl drain k8s-node-3 --ignore-daemonsets
3 升级kubelet 配置:
kubeadm upgrade node
4 升级kubectl 和 kubelet:
yum install kubectl-1.25.1 kubelet-1.25.1 -y
5 重启kubelet:
systemctl daemon-reload
systemctl restart kubelet
6 取消不可调度,重新上线(master 端操作):
kubectl uncordon k8s-node-3
7 查看升级后的Node节点版本(master 端操作):
kubectl get node -o wide
至此 Master + Node 升级完成
**** 以下为详细过程 ****
升级主节点(k8s-master-1):
1 查找最新版本号:
yum list --showduplicates kubeadm
2 升级kubeadm
yum install -y kubeadm-1.25.1.0
3 驱逐Node上的pod,并设置为不可调度(有啥提示参数要加的都加上):
kubectl drain k8s-master-1 --ignore-daemonsets
4 检查集群是否可以升级,并获取可以升级的版本 (直接升1.25的最新版,可忽略版本号,如果是升级到次新版本要加上版本号):
kubeadm upgrade plan 1.25.1
5 根据提示进行下一步操作:
kubeadm upgrade apply v1.25.1
6 升级kubectl 和 kubelet:
yum install kubectl-1.25.1 kubelet-1.25.1 -y
7 重启kubelet:
systemctl daemon-reload
systemctl restart kubelet
8 取消不可调度,重新上线:
kubectl uncordon k8s-master-1
Node 节点升级
1 升级kubeadm:
yum install -y kubeadm-1.25.1
2 驱逐Node节点上的pod,且不可调度(master 端操作):
kubectl drain k8s-node-3 --ignore-daemonsets
3 升级kubelet:
kubeadm upgrade node
4 升级kubectl 和 kubelet:
yum install kubectl-1.25.1 kubelet-1.25.1 -y
5 重启kubelet:
systemctl daemon-reload
systemctl restart kubelet
6 取消不可调度,重新上线(master 端操作):
kubectl uncordon k8s-node-3
[root@k8s-master-1 ~]# kubectl uncordon k8s-node-3
node/k8s-node-3 uncordoned
7 master上查看结果:
kubectl get node -o wide