文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

etcd集群备份恢复

2024-04-02 19:55

关注

一、备份
此备份方式是借助 etcd的snapshot功能做备份,需要时可以把etcd集群回滚到具体备份的时间点,此备份是基于etcd api 3版本的备份,如果数据是用api 2版本写入的,则api 2版本写入的数据无法恢复
1、备份

ETCDCTL_API=3 etcdctl --endpoints="https://192.168.9.89:2379" --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem --cacert=/etc/etcd/ssl/ca.pem snapshot save /chj/backup/etcd3/snapshot.db
2、备份脚本

#!/bin/bash
DATA=`date +%y%m%d`
BACUPDIR=/chj/backup/etcd
ENDPOINTS='https://192.168.9.87:2379,https://192.168.9.88:2379,https://192.168.9.89:2379'
timestamp=`date +%Y%m%d%H%M%S`
if [ ! -d "$BACUPDIR" ]; then
    echo "making dir $BACUPDIR"
    mkdir -p $BACUPDIR
fi
ETCDCTL_API=3 etcdctl --endpoints=$ENDPOINTS  --cert=/etc/etcd/ssl/etcd.pem  --key=/etc/etcd/ssl/etcd-key.pem  --cacert=/etc/etcd/ssl/ca.pem  snapshot save $BACUPDIR/snapshot_$timestamp.db
find $BACUPDIR -name *.db  -mtime +5 -exec rm -rf {} \;

二、恢复
1、停止所有节点的服务

systemctl stop etcd
2、把当前数据目录备份

mv /var/lib/etcd /var/lib/etcd_bak_20190523
3、确认需要回滚的快照文件,分布还原到集群的每个节点上

#还原192.168.9.87节点
ETCDCTL_API=3 etcdctl --name=k8stest-master-1.chj.cloud --endpoints="https://192.168.9.87:2379" --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem --cacert=/etc/etcd/ssl/ca.pem --initial-cluster-token=etcd-cluster-0 --initial-advertise-peer-urls=https://192.168.9.87:2380 --initial-cluster=k8stest-master-1.chj.cloud=https://192.168.9.87:2380,k8stest-master-2.chj.cloud=https://192.168.9.88:2380,k8stest-master-3.chj.cloud=https://192.168.9.89:2380 --data-dir=/var/lib/etcd snapshot restore /chj/backup/etcd3/snapshot.db
#还原192.168.9.88节点
ETCDCTL_API=3 etcdctl --name=k8stest-master-2.chj.cloud --endpoints="https://192.168.9.88:2379" --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem --cacert=/etc/etcd/ssl/ca.pem --initial-cluster-token=etcd-cluster-0 --initial-advertise-peer-urls=https://192.168.9.88:2380 --initial-cluster=k8stest-master-1.chj.cloud=https://192.168.9.87:2380,k8stest-master-2.chj.cloud=https://192.168.9.88:2380,k8stest-master-3.chj.cloud=https://192.168.9.89:2380 --data-dir=/var/lib/etcd snapshot restore /chj/backup/etcd3/snapshot.db
#还原192.168.9.89节点
ETCDCTL_API=3 etcdctl --name=k8stest-master-3.chj.cloud --endpoints="https://192.168.9.89:2379" --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem --cacert=/etc/etcd/ssl/ca.pem --initial-cluster-token=etcd-cluster-0 --initial-advertise-peer-urls=https://192.168.9.89:2380 --initial-cluster=k8stest-master-1.chj.cloud=https://192.168.9.87:2380,k8stest-master-2.chj.cloud=https://192.168.9.88:2380,k8stest-master-3.chj.cloud=https://192.168.9.89:2380 --data-dir=/var/lib/etcd snapshot restore /chj/backup/etcd3/snapshot.db

三、常用命令
使用API 3写入数据

ETCDCTL_API=3 etcdctl --endpoints="https://192.168.9.87:2379,https://192.168.9.88:2379,https://192.168.9.89:2379" --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem --cacert=/etc/etcd/ssl/ca.pem put /chj/3 api3
使用API 3读数据

ETCDCTL_API=3 etcdctl --endpoints="https://192.168.9.87:2379,https://192.168.9.88:2379,https://192.168.9.89:2379" --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem --cacert=/etc/etcd/ssl/ca.pem get /chj/3
使用API 3 查看所有key

ETCDCTL_API=3 etcdctl --endpoints="https://192.168.9.87:2379,https://192.168.9.88:2379,https://192.168.9.89:2379" --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem --cacert=/etc/etcd/ssl/ca.pem get / --prefix --keys-only
使用API 3 删除所有key

ETCDCTL_API=3 etcdctl --endpoints="https://192.168.9.87:2379,https://192.168.9.88:2379,https://192.168.9.89:2379" --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem --cacert=/etc/etcd/ssl/ca.pem del "" --prefix

查看集群成员

ETCDCTL_API=3 etcdctl --endpoints="https://192.168.9.87:2379,https://192.168.9.88:2379,https://192.168.9.89:2379" --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem --cacert=/etc/etcd/ssl/ca.pem member list --write-out=table
查看集群健康状态

ETCDCTL_API=3 etcdctl --endpoints="https://192.168.9.87:2379,https://192.168.9.88:2379,https://192.168.9.89:2379" --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem --cacert=/etc/etcd/ssl/ca.pem endpoint health

查看节点状态

ETCDCTL_API=3 etcdctl --endpoints="https://192.168.9.87:2379,https://192.168.9.88:2379,https://192.168.9.89:2379" --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem --cacert=/etc/etcd/ssl/ca.pem endpoint status --write-out=table

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯