当前位置: 首页 > news >正文

etcd 备份与恢复

etcd 备份与恢复

# 安装 etcdctl 命令
# 方式一:
docker cp $(docker ps | grep -v etcd-mirror | grep -w etcd| awk '{print $1}'):/usr/local/bin/etcdctl /usr/bin# 方式二:
wget https://github.com/etcd-io/etcd/releases/download/v3.5.10/etcd-v3.5.10-linux-arm64.tar.gz
tar -xf etcd-v3.5.10-linux-arm64.tar.gz
cd etcd-v3.5.10-linux-amd64
cp etcd* /usr/sbin#  Kubernetes 集群备份主要是备份 ETCD 集群。而恢复时,主要考虑恢复整个顺序:
--------------  停止kube-apiserver --> 停止ETCD --> 恢复数据 --> 启动ETCD --> 启动kube-apiserve ------------------
# 注意:备份ETCD集群时,只需要备份一个ETCD就行,恢复时,拿同一份备份数据恢复。

etcd备份

# 单主节点脚本
vim etcd-bak.sh
#!/bin/bash
SNAPSHOT_DIR="/var/lib/etcd-bak"
SNAPSHOT_FILE="${SNAPSHOT_DIR}/etcd-snapshot-$(date +%F-%T).db"mkdir -p "${SNAPSHOT_DIR}"
ETCDCTL_API=3 etcdctl snapshot save "${SNAPSHOT_FILE}" \--endpoints="https://localhost:2379" \--cacert="/etc/kubernetes/pki/etcd/ca.crt" \--cert="/etc/kubernetes/pki/etcd/server.crt" \--key="/etc/kubernetes/pki/etcd/server.key"# 备份文件在/var/lib/etcd/member-bak

etcd 恢复

# 所有服务配置文件存放位置 /etc/kubernetes/manifests
# 还原数据时需保证 apiServer 和 etcd 处于关闭状态,最简单的方式就是 mv manifests manifests_back
# 流程:
停止kube-apiserver --> 停止ETCD --> 恢复数据 --> 启动ETCD --> 启动kube-apiserve # 如果是按照文档部署的话 停止kubelet 即可
systemctl stop  kubelet# 恢复数据
--data-dir指向的目录不能提前存在  需要提前删除 etcd目录
etcd-master 当前节点etcd名称
--initial-advertise-peer-urls 为当前节点地址 
--initial-cluster-token 集群认证token## 需要删除或者移走这个目录
rm -rf /var/lib/etcd## 恢复
ETCDCTL_API=3 etcdctl  --initial-cluster etcd-master=https://192.168.174.136:2380 --initial-advertise-peer-urls https://192.168.174.136:2380 --initial-cluster-token="k8s_etcd" snapshot restore /var/lib/etcd-bak/etcd-snapshot-2024-12-24-17:15:40.db --data-dir=/var/lib/etcd --name etcd-master## /var/lib/etcd-bak/etcd-snapshot-2024-12-24-17:15:40.db 是刚刚备份的 etcd 名称
# 启动服务
systemctl start  docker
systemctl start  kubelet# 查询服务
[root@k8s-master manifests]# docker ps -a | grep apiserver
2bc2506e093a   8a9000f98a52   "kube-apiserver --ad…"   2 minutes ago   Up 2 minutes                                                         
2a6f45f0d783   registry.aliyuncs.com/google_containers/pause:3.9   "/pause"     2 minutes ago   Up 2 minutes                                                       
[root@k8s-master manifests]# docker ps -a | grep etcd
829dbbfb08cf   a0eed15eed44   "etcd --advertise-cl…"   23 hours ago    Up 23 hours                                                         
6ce9f09a3996   registry.aliyuncs.com/google_containers/pause:3.9   "/pause"  23 hours ago    Up 23 hours                                   

在这里插入图片描述

http://www.dtcms.com/a/327592.html

相关文章:

  • Etcd客户端工具Etcd Workbench更新了1.2.0版本!多语言支持了中文,新增了许多快捷功能使用体验再次提升
  • Spark 运行流程核心组件(一)作业提交
  • 干货分享|如何从0到1掌握R语言数据分析
  • 小红书笔记信息获取_实在智能RPA源码解读
  • 邦纳BANNER相机视觉加镜头PresencePLUSP4 RICOH FL-CC2514-2M工业相机
  • C++实现LINGO模型处理程序
  • Java结课案例-景点人数统计的几种场景
  • 日期格式化成英文月,必須指定語言環境
  • Secure CRT做代理转发
  • HTTP应用层协议-长连接
  • 记对外国某服务器的内网渗透
  • C++少儿编程(二十二)—条件结构
  • 机械臂运动规划与控制12讲
  • SQL 语言分类
  • 后端学习路线
  • 3D文档控件Aspose.3D实用教程:在 C# 中将 3MF 文件转换为 STL
  • 开疆智能Ethernet转ModbusTCP网关连接发那科机器人与三菱PLC配置案例
  • Spring Boot部署万亿参数模型推理方案(深度解析)
  • css之再谈浮动定位float(深入理解篇)
  • 物联网、大数据与云计算持续发展,楼宇自控系统应用日益广泛
  • 黑马程序员mysql课程p65 安装linux版本的mysql遇到问题
  • [密码学实战]基于国密TLCP协议的Java服务端实现详解(四十四)
  • 【基于DesignStart的M3 SoC】
  • 4/5G中频段频谱全球使用现状概述(截止2025 年7月)
  • 【unity实战】在 Unity 中实现卡牌翻转或者翻书的效果
  • 现代化水库运行管理矩阵建设的要点
  • 学习笔记《区块链技术与应用》ETH 第二天 状态树
  • 解决 HTTP 请求 RequestBody 只能被读取一次的问题
  • 敏捷开发的关键点是什么?深入探索!
  • Windows server服务器上部署python项目域名访问(超详细教程)