误删节点或集群怎么办?这里有一颗后悔药 (2)

默认情况下,RKE 集群会默认启用授权集群端点。这个端点允许您使用 kubectl CLI 和 kubeconfig 文件访问下游的 Kubernetes 集群,RKE 集群默认启用了该端点。

如果误删kube-api-auth,恢复的方法也很简单,只需要编辑集群,将“授权集群访问地址”修改成禁用,保存集群。然后再用相同的方法启用 “授权集群访问地址”即可。

1、编辑集群

误删节点或集群怎么办?这里有一颗后悔药

2、禁用授权集群访问地址,保存

误删节点或集群怎么办?这里有一颗后悔药

3、再次编辑集群,启用授权集群访问地址,保存

误删节点或集群怎么办?这里有一颗后悔药

恢复nginx-ingress-controller、canal、coredns、metrics-server组件

nginx-ingress-controller、canal、coredns、metrics-server 这些workload都是通过kube-system命名空间下的各种job来创建的,所以如果要重建这些workload只需要重新执行对应的job即可。

本例使用nginx-ingress-controller做演示,其他workload的恢复步骤可以参考此恢复方案。

模拟故障

从System Project下删除 kube-system 下的default-http-backend和nginx-ingress-controller

误删节点或集群怎么办?这里有一颗后悔药

执行恢复

从kube-system命名空间下删除rke-ingress-controller-deploy-job(如果不删除对应的job,更新集群后,不会重新触发job重新执行)

为了触发集群更新,可以编辑集群,修改NodePort范围,然后保存。

验证

集群更新成功后,回到System Project下确认default-http-backend和nginx-ingress-controller已经重新创建。

误删节点或集群怎么办?这里有一颗后悔药

如何恢复从Rancher UI或kubectl误删的节点

当节点处于“活动”状态,从集群中删除节点将触发一个进程来清理节点。如果没有重启服务器,并不会完成所有的清除所有非持久化数据。

如果无意中将节点删除,只需要使用相同的参数再次添加节点即可恢复集群。

比如我的环境有两个节点,分别具有全部和Worker角色

误删节点或集群怎么办?这里有一颗后悔药

从Rancher UI或kubectl将节点rancher2删除,此时集群中只剩下一个rancher3节点,由于集群中缺少Etcd和Control角色,所以集群提示:Waiting for etcd and controlplane nodes to be registered

误删节点或集群怎么办?这里有一颗后悔药

接下来,编辑集群,并且设置相同的节点参数,这地方要注意,一定要设置和之前添加节点时相同的节点参数。

误删节点或集群怎么办?这里有一颗后悔药

复制添加节点命令在rancher2的SSH终端运行。

误删节点或集群怎么办?这里有一颗后悔药

过一会,再回到集群集群主机列表页面,可以看到rancher2节点已经恢复

误删节点或集群怎么办?这里有一颗后悔药

如何恢复执行过清理节点脚本的节点

中文官网提供了一个清理节点的脚本,这个脚本会清理节点上的容器、卷、rancher/kubernetes目录、网络、进程、iptables等。

如果由于误操作,在正确的节点上执行了清理脚本。针对这种场景,只有在rancher中创建过备份的集群才可以恢复。

创建集群备份参考中文官网:

https://rancher2.docs.rancher.cn/docs/cluster-admin/backing-up-etcd/_index

在我的环境中,demo集群有rancher2和rancher3两个节点。

误删节点或集群怎么办?这里有一颗后悔药

创建备份

在Rancher UI上创建集群快照,稍后恢复集群的时候会用的到。

误删节点或集群怎么办?这里有一颗后悔药

然后导航到全局->demo->工具->备份查看已经创建的ETCD备份,从备份创建时间可以看出,刚才创建的备份名称为c-v6mtr-ml-klt5n。

误删节点或集群怎么办?这里有一颗后悔药

备份文件存到了etcd(rancher2)节点对应的/opt/rke/etcd-snapshots目录下。

误删节点或集群怎么办?这里有一颗后悔药

清理节点

在rancher2节点执行中文官网节点清理脚本,清理理完之后,不出所料,集群崩了。

误删节点或集群怎么办?这里有一颗后悔药

恢复集群

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpyjxz.html