14、升级集群
题目:
设置配置环境:
[candidate@node-1] $ kubectl config use-context mk8s
Task
现有的 Kubernetes 集群正在运行版本 1.28.0。仅将 master 节点上的所有 Kubernetes 控制平面和节点组件升级到版本 1.28.1。
确保在升级之前 drain master 节点,并在升级后 uncordon master 节点。
可以使用以下命令,通过 ssh 连接到 master 节点:
ssh master01
可以使用以下命令,在该 master 节点上获取更高权限:
sudo -i
另外,在主节点上升级 kubelet 和 kubectl。
请不要升级工作节点,etcd,container 管理器,CNI 插件, DNS 服务或任何其他插件。
考点:
如何离线主机,并升级控制面板和升级节点
参考链接:
没必要参考网址,建议多练习,背过命令就行。
记不清的,可以使用 kubectl -h 来帮助。
如果非要参考,可以按照下面方法。
依次点击 Tasks → Administer a Cluster → Administration with kubeadm → Upgrading kubeadm clusters (看不懂英文的,可右上角翻译成中文)
https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/
解答:
更换 context
$ kubectl config use-context mk8s
ssh 到 master01
$ ssh master01
$ sudo -i
排空节点
$ kubectl cordon master
$ kubectl drain master
升级 kubeadm
$ apt update
$ apt-cache madison kubeadm | grep 1.28.1
# apt 升级 kubeadm
$ apt-get install kubeadm=1.28.1-00 -y
# kubeadm 升级集群, 注意不要升级 etcd, 忘记怎么写, 可以 -h
$ kubeadm upgrade apply 1.28.1 --etcd-upgrade=false
升级 kubectl, kubelet
$ apt-get install kubectl=1.28.1-00 kubelet=1.28.1-00 -y
检查
$ kubeadm version
$ kubectl version
$ kubelet --version
# 记得使节点可重新调度
$ kubectl uncordon master01
$ exit # 退到 node01