
iStockphoto /盖蒂图片社
如何从etcd快照恢复Kubernetes集群
在发生导致Kubernetes集群丢失的事件时,重要的是要做好恢复准备。下面介绍如何使用命令从etcd快照恢复集群。
如果灾难发生,需要恢复Kubernetes集群,etcd快照是一个有用的修复。即便如此,恢复etcd快照并不是一个直观的过程。
从etcd快照恢复kubernetes群集涉及的步骤可能因如何而异Kubernetes环境设置了,但下面描述的步骤旨在熟悉基本过程的用户。
同样值得注意的是,下面描述的过程将替换现有的etcd数据库,因此如果一个组织需要保留数据库内容,那么它必须这样做创建数据库的备份副本在前进之前。
下面是从etcd恢复Kubernetes集群所需的步骤快照.本教程在假设Kubernetes使用默认文件夹路径的假设下工作。
安装etcd客户端
从etcd快照恢复Kubernetes集群的第一步是安装etcd客户端。该命令是:
apt安装etcd-client
管理员可以使用一个命令来完成恢复过程,尽管需要额外的工作才能使新的ETCD数据库联机。
确定适当的IP地址
下面的命令假设用户正在将快照恢复到本地机器,本地机器应该是Kubernetes集群中的一台计算机。这应该使用127.0.0.1 IP地址。在将快照恢复到另一台机器时,请替换适当的IP地址。
需要提供的附加信息是正在恢复的快照的名称及其位置。
当备份Kubernetes,提供给的参数之一ettdctl.命令是快照保存,后面跟着一个路径和文件名。
这是恢复过程中所需的相同路径和文件名,假设快照存储在TMP文件夹中,并名为example.db。
下面是用于恢复数据库的命令:
etcdctl_api = 3 etcdctl --endpoints = https:// [127.0.0.1]:// [127.0.0.1]:2379 --cacert = / etc / kubernetes / pki / etcd / ca.crt \ --name = master \ --cert = / etc / kubernetes/pi/etcd/server.crt -key = / etc / kubernetes / pki / etcd / server.key \ --data-dir / var / lib / etcd-from-backup \ --initial-cluster = master = https://127.0.0.1:2380 \ - --initial-cluster-token etcf-cluster-1 \ - -initial-advertise-peer-urls = https://127.0.0.1:2380 \ snapshot restore /tmp/example.db
编辑清单文件以更新路径
修复过程完成后,用户通常需要编辑清单文件以更新其中包含的路径。要编辑此文件,请输入以下命令:
vi /etc/kubernetes/manifests.etcd.yaml.
找到规范部分
当YAML文件打开,找到规范部分,然后编辑数据目录命令,用指向新位置的路径替换默认路径(var / lib / etcd)。
通常使用/var/ libs /etcd-from-backup,但是您可以使用任何有意义的位置。
这是全线的样子:
--data-dir = / var / lib / etcd-from-backup
将初始群集令牌添加到文件中
下一步是将初始集群令牌添加到文件中。为此,在initialize -cluster-k8snode行之后添加一行。这个新行看起来像这样:
——initial-cluster-token = etcd-cluster-1
更新挂载路径
现在,向下滚动并找到文件的volumounts部分。在这里,更新挂载路径以反映您指定的数据目录的路径。
因为我使用etcd-from-backup作为数据目录,所以挂载路径线将读取:
- mountPath: /var/lib/etc-from-backup
请替换软管路径名称
用相同的路径替换主路径的名称(主路径部分中的名称值)。它应该如下所示:
名称:/ var / lib / etc-from-backup
完成后,保存更改并等待几秒钟。现在,通过输入以下命令创建新进程:
Ps -ef | grep etcd
验证新恢复的数据库
用户可以通过输入以下命令来验证新恢复的数据库是否已启动并运行:
kubectl得到豆荚-A
这将显示运行豆荚.它应该显示最近启动的名为etc -k8snode的pod。