题目内容
设置配置环境:
[candidate@node-1] $ kubectl config use-context mk8s
Task
现有的 Kubernetes 集群正在运行版本 1.29.0。仅将 master 节点上的所有 Kubernetes 控制平面和节点组件升级到版本 1.29.1。
确保在升级之前 drain master 节点,并在升级后 uncordon master 节点。
可以使用以下命令,通过 ssh 连接到 master 节点:
ssh master01
可以使用以下命令,在该 master 节点上获取更高权限:
sudo -i
另外,在主节点上升级 kubelet 和 kubectl。
请不要升级工作节点,etcd,container 管理器,CNI 插件, DNS 服务或任何其他插件。
考点相关内容分析
集群升级
升级集群的方式取决于你最初部署它的方式、以及后续更改它的方式。
从高层规划的角度看,要执行的步骤是:
- 升级控制平面
- 升级集群中的节点
- 升级 kubectl 之类的客户端
- 根据新 Kubernetes 版本带来的 API 变化,调整清单文件和其他资源
题目操作步骤
- (标准步骤) 进入题目指定集群
$ kubectl config use-context mk8s
- 停止调度 master01 以及驱逐 master01
$ kubectl cordon master01
$ kuebctl drain master01 --ignore-daemonsets
- 进入 master01 服务器 ,提权至 root
$ ssh master01
$ sudo -i
- 更新软件更新源缓存并查看 kubeadm 详细版本号
$ apt update
$ apt-cache show kubeadm | grep 1.29.1
$ apt install kubeadm=1.29.1-1.1
- 验证升级计划
$ kubeadm upgrade plan
$ kubeadm upgrade apply v1.29.1
- 升级 Kubelet
$ apt install kubelet=1.29.1
$ systemctl daemon-reload
$ systemctl restart kubelet
- 升级 Kubectl
$ apt-get install kubectl=1.29.1-1.1
8. 回退到 node01 节点上
$ exit / Ctrl + D # 退回 master01 普通用户
$ exit / Ctrl + D # 退到 node01 普通用户
# 重新调用主节点
$ kubectl uncordon master01
检查命令
查看节点版本
$ kubectl get nodes
参考资料:https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/