首页 > 其他分享 >etcd 操作备份和恢复

etcd 操作备份和恢复

时间:2024-10-17 14:23:29浏览次数:10  
标签:-- root 备份 etcd 操作 k8s backup dir

2.3.5 :etcd增删改查数据:





2.3.6 :etcd数据watch机制:
基于不断监看数据,发⽣变化就主动触发通知客户端,  Etcd v3 的watch机制⽀持watch某个固定的key,也⽀持 watch⼀个范围。
相⽐Etcd v2, Etcd v3的⼀些主要变化:

接⼝通过grpc提供rpc接⼝,放弃了v2的http接⼝,优势是⻓连接效率提升明显,缺点是使⽤不如以前⽅便,尤其对
不⽅便维护⻓连接的场景。
废弃了原来的⽬录结构,变成了纯粹的kv,⽤户可以通过前缀匹配模式模拟⽬录。
内存中不再保存value,同样的内存可以⽀持存储更多的key。
watch机制更稳定,基本上可以通过watch机制实现数据的完全同步。
提供了批量操作以及事务机制,⽤户可以通过批量事务请求来实现Etcd v2的CAS机制(批量事务⽀持if条件判断)。
watch测试:

#在etcd node1上watch⼀个key,没有此key也可以执⾏watch,后期可以再创建:
root@etcd1:~# ETCDCTL_API=3  /usr/bin/etcdctl watch  /name
#在etcd node2修改数据,验证etcd node1是否能够发现数据变化
root@etcd2:~# ETCDCTL_API=3  /usr/bin/etcdctl put  /data "data v1"
OK
root@etcd2:~# ETCDCTL_API=3  /usr/bin/etcdctl put  /data "data v2"
OK







2.3.7 :etcd数据备份与恢复机制:
WAL是writeahead log的缩写,顾名思义,也就是在执⾏真正的写操作之前先写⼀个⽇志,预写⽇志。
wal: 存放预写式⽇志,最⼤的作⽤是记录了整个数据变化的全部历程。在etcd中,所有数据的修改在提交前,都要 先写⼊到WAL中。
2.3.7.1 :etcd v2版本数据备份与恢复:

V2版本帮助信息:
root@k8s-etcd2:~# /usr/bin/etcdctl backup --help
NAME:
etcdctl backup - backup an etcd directory

USAGE:
etcdctl backup [command options]

OPTIONS:
--data-dir value        Path to the etcd data dir #源数据⽬录
--wal-dir value         Path to the etcd wal dir
--backup-dir value      Path to the backup dir #备份⽬录
--backup-wal-dir value  Path to the backup wal dir

V2版本备份数据:
root@k8s-etcd2:~# ETCDCTL_API=2 etcdctl backup  --data-dir /var/lib/etcd/ --backup-dir
/opt/etcd_backup
2019-07-11 18:59:57.674432 I | wal: segmented wal file
/opt/etcd_backup/member/wal/0000000000000001-0000000000017183.wal is created

V2版本恢复数据:
#恢复帮助信息:
root@k8s-etcd2:~# etcd --help | grep force
--force-new-cluster 'false'
force to create a new one-member cluster.

etcd --data-dir=/var/lib/etcd/default.etcd --force-new-cluster &

root@k8s-etcd2:~# vim /etc/systemd/system/etcd.service
[Unit]
Description=Etcd Server




2.3.7.2 :etcd 集群v3版本数据⼿动备份与恢复:

V3版本备份数据:
root@k8s-etcd2:~# ETCDCTL_API=3 etcdctl  snapshot save  snapshot.db
Snapshot saved at snapshot.db

V3版本恢复数据:
root@k8s-etcd2:~#  ETCDCTL_API=3  etcdctl snapshot restore  snapshot.db  --data- dir=/opt/etcd-testdir #将数据恢复到⼀个新的不存在的⽬录中
2019-07-11 18:57:46.526757 I | mvcc: restore compact to 74541
2019-07-11 18:57:46.536114 I | etcdserver/membership: added member 8e9e05c52164694d
[http://localhost:2380] to cluster cdf818194e3a8c32
#⾃动备份数据
root@k8s-etcd2:~# mkdir /data/etcd-backup-dir/ -p
root@k8s-etcd2:~# cat  script.sh
#!/bin/bash
source /etc/profile
DATE=`date +%Y-%m-%d_%H-%M-%S`
ETCDCTL_API=3 /usr/bin/etcdctl  snapshot save  /data/etcd-backup-dir/etcd-snapshot-
${DATE}.db
2.3.7.3 :etcd 集群v3版本数据⾃动备份与恢复:




root@k8s-master1:/etc/kubeasz# ./ezctl backup  k8s-01

root@k8s-master1:/etc/kubeasz# kubectl  delete pod net-test4
pod "net-test4" deleted

root@k8s-master1:/etc/kubeasz# ./ezctl restore k8s-01
2.3.7.4:  ETCD数据恢复流程:
当etcd集群宕机数量超过集群总节点数⼀半以上的时候(如总数为三台宕机两台),就会导致整合集群宕机,后期需 要重新恢复数据,则恢复流程如下:

1、恢复服务器系统
2、重新部署ETCD集群
3、停⽌kube-apiserver/controller-manager/scheduler/kubelet/kube-proxy
4、停⽌ETCD集群
5、各ETCD节点恢复同⼀份备份数据
6、启动各节点并验证ETCD集群
7、启动kube-apiserver/controller-manager/scheduler/kubelet/kube-proxy
8、验证k8s master状态及pod数据
2.3.7.5:  ETCD集群节点添加与删除:
节点维护主要是节点的添加或删除

 

标签:--,root,备份,etcd,操作,k8s,backup,dir
From: https://www.cnblogs.com/gaoyuechen/p/18472148

相关文章

  • FMDB操作步骤
    在iOS开发中使用SQLite或FMDB进行数据库操作的步骤与我之前提到的数据库操作步骤大致相似,但会有一些具体的实现细节和API调用方式。以下是使用SQLite或FMDB进行数据库操作的一般步骤:1.引入库如果使用FMDB,首先需要将FMDB库添加到你的项目中。可以通过CocoaPods......
  • 数据库操作步骤
    数据库操作的基本步骤通常分为几个主要阶段,每个阶段都有其特定的目的和操作。以下是常见的数据库操作步骤及其解释:1.创建数据库目的:建立一个新的数据库实例来存储数据。操作:使用SQL命令如CREATEDATABASEdb_name;创建数据库。解释:数据库是数据的容器,创建数据库是使用数......
  • mySql数据库备份与恢复
    MySQL数据库的备份和恢复是保证数据安全的重要操作。以下是关于MySQL数据库备份与恢复的详细步骤和说明。一、MySQL数据库备份1.使用 mysqldumpmysqldump 是MySQL提供的一个实用工具,用于备份数据库。备份单个数据库:mysqldump-uusername-pdbname>backup.sql......
  • etcd中的"IS LEARNER"是指什么
    etcd中的"ISLEARNER"是指在etcd集群中新引入的一种节点角色——学习者(Learner)。这个概念最早出现在etcd的3.4版本中。在介绍学习者角色之前,先简单了解一下etcd集群的背景:etcd是一个分布式键值存储系统,常用于服务发现、配置管理和分布式锁等场景。它内部使用Raft算法来保证数据的......
  • 怎样才能建立一个新的微信群?这样操作方便快捷
    微信,作为中国最受欢迎的社交媒体平台之一,不仅用于个人之间的通讯,还广泛应用于工作、学习等各类场景。微信群则是一个非常实用的功能,它允许用户将一组人聚集在一起,进行便捷的交流和分享。本文将详细介绍如何在微信中创建群聊,让你轻松享受群聊的便利。一、创建微信群的准备工......
  • Selenium 进阶技巧:实现 Web 端的鼠标操作功能
    此文章来源于项目官方公众号:“AirtestProject”版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途一、前言大家在做selenium测试时,是否会遇到在网页上需要执行一些鼠标操作,如右键选择一些设置,或者双击点赞,双击放到屏幕等等,但是在日常使用中还是习惯使用selenium......
  • 三分钟带你玩转数据库备份
    数据库备份冷备份rsync-a/var/lib/mysql/10.0.0.2:/data/mysql热备份(备份单独数据库)mysqldump-umysql-p123456-Bdatabase>/backup/backup-`date+%F-%H-%M-%S`.sql备份所有数据库(压缩)mysqldumnp-umysql-p123456-A|gzip>/backup/b......
  • MySQL(python开发)——(5)聚合操作
    MySQL(python开发)——(1)数据库概述及其MySQL介绍MySQL(python开发)——(2)数据库基本操作及数据类型MySQL(python开发)——(3)表数据的基本操作,增删改查MySQL(python开发)——(4)高级查询语句MySQL聚合操作聚合操作指的是在数据查找基础上对数据的进一步整理筛选行为,实际上聚合......
  • OpenCV基本操作(python开发)——(1) 读取图像、保存图像
    OpenCV一.OpenCV安装——linux执行以下命令安装opencv-python库(核心库)和opencv-contrib-python库(贡献库)。注意:命令拷贝后要合成一行执行,中间不要换行。#安装opencv核心库pip3install--useropencv-python==3.4.2.16--index-urlhttps://pypi.tuna.tsinghua.edu.cn......
  • 【c#】JSON操作
    C#中使用Json,安装Newtonsoft.json依赖读取json文件注意:检查json文件的编码类型,是否为UTF-8。不是的话,读取到的中文会乱码方法:json文件使用记事本打开,界面下方会显示编码类型。若不是,将文件另存为,更改即可。privateJObjectReadJsonFile(stringfolder,stringfileName){......