题目介绍:
资料参考:
https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/configure-upgrade-etcd
解题:
1、备份
bash
#参考模板列出 etcdctl 可用的各种选项。
#例如,你可以通过指定端点、证书和密钥来制作快照,如下所示:
#ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
# --cacert=<trusted-ca-file> --cert=<cert-file> --key=<key-file> \
# snapshot save <backup-file-location>
ETCDCTL_API=3 etcdctl --endpoints https://127.0.0.1:2379 snapshot save /data/backup/etcd-snapshot.db --cacret=/opt/kuin00601/ca.cart --cert=/opt/kunin00601/etcd-client.crt --key=/opt/KUIN00601/etcd-client.key
2、停止etcd ,查看文件目录
如果集群中正在运行任何 API 服务器,则不应尝试还原 etcd 的实例。相反,请按照以下步骤还原 etcd:
停止所有 API 服务实例
在所有 etcd 实例中恢复状态
重启所有 API 服务实例
bash
systemctl stop etcd.serivces
systemctl cat etcd
3、进行备份恢复
bash
#如果 <data-dir-location> 与之前的文件夹相同,请先删除此文件夹并停止 etcd 进程,再恢复集群。 否则,需要在恢复后更改 etcd 配置并重新启动 etcd 进程才能使用新的数据目录。
#文件备份
mv /var/lib/etcd /var/lib/etcd.bak
#其中 <data-dir-location> 是将在恢复过程中创建的目录。
#另一个例子是先导出 ETCDCTL_API 环境变量:
#export ETCDCTL_API=3
#etcdctl --data-dir <data-dir-location> snapshot restore snapshot.db
ETCDCTL_API=3 etcdctl --data-dir=/var/lib/etcd snapshot restore /data/backup/etcd-snapshot.db
chown -R etcd:ectd /var/lib/etcd
systemctl restart etcd
注:执行备份命令如果提示没证书文件,exit 退回上一步操作