ETCD集群运维—备份及容灾恢复
admin
2023-03-05 14:23:37
0次

etcd是一个开源的分布式键值对数据库,他的每一个节点都有一份数据的copy,当有节点故障时保证了高可用性。etcd使用Raft算法来保证一致性。


特别提醒:若使用v3备份数据时存在v2的数据则不影响恢复

若使用v2备份数据时存在v3的数据则恢复失败


etcd V2新增节点(删除数据后重新加入)

适用于单节点故障,重新加入集群

V2与V3新增节点的区别仅在于member add参数


停止etcd服务

# systemctl stop etcd


# 清空etcd data数据

# mv /var/lib/etcd/default.etcd /tmp


# 查看etcd列表

# /opt/kubernetes/bin/etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem --endpoints="https://172.30.0.89:2379,https://172.30.0.81:2379,https://172.30.2.10:2379" member list


# remove 已存在的etcd name

# /opt/kubernetes/bin/etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem --endpoints="https://172.30.0.89:2379,https://172.30.0.81:2379,https://172.30.2.10:2379" member remove a4ec138b3529c929


# 新增etcd节点

# V2

# /opt/kubernetes/bin/etcdctl --ca-file=/opt/kubernetes/ssl/ca.pem --cert-file=/opt/kubernetes/ssl/server.pem --key-file=/opt/kubernetes/ssl/server-key.pem member add etcd03 https://172.30.0.89:2380

# V3

# ETCDCTL_API=3  /opt/kubernetes/bin/etcdctl --endpoints=https://172.30.2.10:2379,etcd02=https://172.30.0.81:2379,etcd03=https://172.30.0.89:2379  --cacert=/opt/kubernetes/ssl/ca.pem   --cert=/opt/kubernetes/ssl/server.pem   --key=/opt/kubernetes/ssl/server-key.pem  member add  etcd03 --peer-urls="https://172.30.0.89:2380" 


# 修改该节点etcd配置ETCD_INITIAL_CLUSTER_STATE="existing"

# 同时重启所有etcd

# systemctl restart etcd


etcd数据备份恢复(集群不可用,灾难恢复)

注意:单节点备份一份当前或历史数据即可,在恢复的时候需要同步到所有节点,若只想恢复一台节点的,则会在系统日志里报request cluster ID mismatch

没有节点加入,因为是会创建一个新的集群id ,相当于重新搭建一台新的cluster(数据保留,cluster id变更)


# 停止apiserver(集群不可用状态,确认无写入的话也可以不停)


# 停止etcd服务

systemctl stop etcd


# 数据备份

# ETCDCTL_API=3 /opt/kubernetes/bin/etcdctl snapshot  save /var/lib/etcd/etcd_backup/etcd_$(date "+%Y%m%d%H%M%S").db


# 同步备份数据到各个节点

# scp etcd_$(date "+%Y%m%d%H%M%S").db  集群各etcd节点


# 移除数据目录 

mv /var/lib/etcd/default.etcd /tmp


# 快照恢复数据  修改name 和 initial-advertise-peer-urls为当前节点的即可

# ETCDCTL_API=3 /opt/kubernetes/bin/etcdctl snapshot --cacert=/opt/kubernetes/ssl/ca.pem --cert=/opt/kubernetes/ssl/server.pem --key=/opt/kubernetes/ssl/server-key.pem  restore /var/lib/etcd/etcd_20190903102702.db --name=etcd01 --data-dir=/var/lib/etcd/default.etcd --initial-cluster="etcd01=https://172.30.2.10:2380,etcd02=https://172.30.0.81:2380,etcd03=https://172.30.0.89:2380" --initial-cluster-token="etcd-cluster" --initial-advertise-peer-urls=https://172.30.2.10:2380


# 重启etcd


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...