etcd备份与恢复测试

第1步:master-1上备份etcd(这边三个master节点上对应部署了三个etcd节点)

三个master节点上创建备份目录:/opt/etcd/bak

master-1上操作备份:

ETCDCTL_API=3 /usr/local/bin/etcdctl snapshot save /opt/etcd/bak/backup_$(date "+%Y%m%d%H%M%S").db \

--endpoints=https://192.168.52.38:2379 \

--cacert=/etc/etcd/ssl/ca.pem \

--cert=/etc/etcd/ssl/server.pem \

--key=/etc/etcd/ssl/server-key.pem

 

把备份的内容分发到其他两个节点:

for i in master-2 master-3;do scp backup_20210928102547.db $i:/opt/etcd/bak/ ;done

##########自己删除一个deployment,以验证恢复是否成功###########

 

 

第2步:恢复

先关闭服务(三节点都操作):

systemctl stop kube-apiserver

systemctl stop etcd

mv /var/lib/etcd/default.etcd /var/lib/etcd/default.etcd.bak

节点1:ETCDCTL_API=3 /usr/local/bin/etcdctl snapshot restore /opt/etcd/bak/backup_20210928102547.db \

--name master-1 \

--initial-cluster="master-1=https://192.168.52.38:2380,master-2=https://192.168.52.39:2380,master-3=https://192.168.52.40:2380" \

--initial-cluster-token=etcd-cluster \

--initial-advertise-peer-urls=https://192.168.52.38:2380 \

--data-dir=/var/lib/etcd/default.etcd

 

节点2和3命令类似,注意修改--name和--initial-advertise-peer-urls

节点2:

 

节点3:

 

重启服务(三节点):

systemctl start kube-apiserver

systemctl start etcd

查看恢复之后,之前删除的deployment有没有恢复:

 

posted @ 2021-06-21 17:38  lpaxq  阅读(133)  评论(0编辑  收藏  举报