LAB-03:升级K8S版本

LAB-03:升级K8S版本

LAB 需求

# 最新的版本是1.22.1,升级到1.22.2
现有的 Kubernetes 集群正在运行的版本是 1.22.1,仅将主节点上的所有 kubernetes 控制面板和组件升级到版本 1.22.2 另外,在主节点上升级 kubelet 和 kubectl。

LAB 预配

# 目前版本
user1@k8s-master:~$ kubectl get nodes
NAME         STATUS   ROLES                  AGE   VERSION
k8s-master   Ready    control-plane,master   39d   v1.22.1
k8s-node-1   Ready    <none>                 39d   v1.22.1
k8s-node-2   Ready    <none>                 39d   v1.22.1
k8s-node-3   Ready    <none>                 39d   v1.22.1

LAB 答案

# 切换 content
$ kubectl config use-context k8s

# 设置 k8s-master 为维护状态
$ kubectl get node
$ kubectl cordon k8s-master

# 驱逐 k8s-master 上的 Pod
$ kubectl drain k8s-master --delete-local-data --ignore-daemonsets --force

# 登录到 k8s-master,然后切换到 root 用户,LAB 环境只需要切换到 root 用户
$ ssh k8s-master
$ sudo -i
$ apt update

# 查看支持哪个版本
$ apt-cache policy kubeadm | grep 1.22.2
$ apt-mark unhold kubeadm kubectl kubelet
$ apt-get install -y kubeadm=1.22.2-00 kubelet=1.22.2-00 kubectl=1.22.2-00
$ apt-mark hold kubeadm kubectl kubelet 

# 验证升级计划
$ kubeadm upgrade plan

# 开始升级,不升级 etcd
$sudo kubeadm upgrade apply v1.22.2 --etcd-upgrade=false

# 重新启动服务
$ systemctl daemon-reload
$ systemctl restart kubelet

# 设置 k8s-master 为正常状态
$ exit
$ exit  # 如果使用 sudo -i,这里一定要退出两次,考试环境要注意
$ kubectl uncordon k8s-master

LAB 验证

# 确认只升级了 master 节点的版本
user1@k8s-master:~$ kubectl get node
NAME         STATUS                     ROLES                  AGE   VERSION
k8s-master   Ready                      control-plane,master   22h   v1.22.2
k8s-node-1   Ready,SchedulingDisabled   <none>                 21h   v1.22.1
k8s-node-2   Ready                      <none>                 21h   v1.22.1
k8s-node-3   Ready                      <none>                 21h   v1.22.1

参考资料

  • https://kubernetes.io/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/



posted @ 2022-06-14 11:22  武装小灰灰  阅读(77)  评论(0编辑  收藏  举报