练习题-2
# 课后练习题-2
# 理论练习(开放性试题)
涵盖第 4 章的内容。
- 小明部署了一个 kubernetes v1.23 版本的集群,现在他想直接从 v1.23 更新至 v1.26 版本,可以吗?
- kubernetes 的升级顺序是怎样的?
答案
- 不可以,因为 kubernetes 不能跨版本升级。
- 先升 master、后升 worker。软件 kubeadm 优先,集群组件排中间,kubectl 和 kubelet 靠边。
# 实操练习
涵盖第 1 章和第 4 章的内容。
- 根据前面所学,尝试自己部署一个新的集群,选择 v1.27.1 版本。
- 如果你跟随前面几章的学习路径,则你现在的集群版本应该为 v1.27.6。现在,请你将现有集群升级至 v1.28 版本(只要是 1.28 就可以,不管是 1.28.0 还是 1.28.1 还是 1.28.2)。
完成第二个练习之后,你的现有集群版本应该为 v1.28.X,这将用于之后的章节学习和练习:
答案分隔线
答案分隔线
答案分隔线
答案分隔线
答案分隔线
答案分隔线
答案分隔线
答案分隔线
答案分隔线
# 实操练习答案
# 升级master
1、升级 kubeadm 软件:
yum install kubeadm-1.28.2-0 --disableexcludes=kubernetes -y
1
2、将 master 设置成维护模式:
kubectl drain www.k10.com --force --ignore-daemonsets --delete-emptydir-data
1
3、升级 master 上的集群组件:
kubeadm upgrade apply v1.28.2
1
4、升级 kubectl 和 kubelet 软件,然后重启 kubelet 服务:
yum install kubectl-1.28.2-0 kubelet-1.28.2-0 --disableexcludes=kubernetes -y
systemctl daemon-reload # 重载现有服务
systemctl restart kubelet # 重启kubelet服务
systemctl status kubelet # 查看kubelet服务状态
1
2
3
4
5
2
3
4
5
5、取消 master 的维护模式:
kubectl uncordon www.k10.com
1
至此,master 的升级已经完成。是的就是这么简单,只需要以上 5 个步骤。
此外,还有一些你可能感兴趣的命令:
# 查看集群升级计划
kubeadm upgrade plan
# 升级集群组件时,不升级 etcd 组件(标志符 --etcd-upgrade=false)
kubeadm upgrade apply v1.28.2 --etcd-upgrade=false
# 在升级 master 上的组件之前,提前下载镜像
kubeadm config images pull
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
在完成 master 节点的升级之后,你的 master 应该已经来到了 v1.28.X 版本:
# 升级worker
1、升级 kubeadm 软件:
yum install kubeadm-1.28.2-0 --disableexcludes=kubernetes -y
1
2、在 master 上运行 kubectl,将 worker 设置成维护模式:
kubectl drain <节点名称> --force --ignore-daemonsets --delete-emptydir-data
1
3、升级 worker 上的集群组件:
# 注意!!!worker 和 master 的组件升级命令是不同的!
kubeadm upgrade node
1
2
2
4、升级 kubectl 和 kubelet 软件,然后重启 kubelet 服务:
yum install kubectl-1.28.2-0 kubelet-1.28.2-0 --disableexcludes=kubernetes -y
systemctl daemon-reload # 重载现有服务
systemctl restart kubelet # 重启kubelet服务
systemctl status kubelet # 查看kubelet服务状态
1
2
3
4
5
2
3
4
5
5、在 master 上运行 kubectl,取消 worker 的维护模式:
kubectl uncordon <节点名称>
1
worker 的升级同样只需要以上 5 个步骤。请你以同样的方式,对其余 worker 进行升级。
在完成所有节点的升级之后,你的集群应该来到了 v1.28.X 版本:
编辑 (opens new window)