傻瓜化备份/恢复K8S集群Etcd数据

前言:

       备份重要数据,简化重复操作,让一指禅、点点点也能完成运维任务。

       脚本呈现界面如下:

1、查看Etcd版本

root@master:~# cat /etc/kubernetes/manifests/etcd.yaml | grep image: | awk '{print $2}'
registry.aliyuncs.com/google_containers/etcd:3.5.10-0

2、下载安装Etcd操作命令etcdctl

#下载etcdctl
root@master:~# wget https://github.com/etcd-io/etcd/releases/download/v3.5.10/etcd-v3.5.10-linux-amd64.tar.gz
root@master:~# 
#解压缩
root@master:~# tar -zxvf etcd-v3.5.10-linux-amd64.tar.gz
root@master:~# 
#移进可执行程序目录
root@master:~# sudo mv etcd-v3.5.10-linux-amd64/etcdctl /usr/bin/
root@master:~# sudo mv etcd-v3.5.10-linux-amd64/etcdutl /usr/bin/
root@master:~# 
#查看一下etcdctl版本
root@master:~# etcdctl
NAME:etcdctl - A simple command line client for etcd3.USAGE:etcdctl [flags]VERSION:3.5.10API VERSION:3.5
#创建备份目录
root@master:~# mkdir -p /data/backup/file

3、Etcd数据备份/恢复脚本

#!/bin/bash
#AUTHOR       : Created by YaoButing
#PLATFORM     : Ubuntu 20.04.6 LTS (Focal Fossa)
#VERSION      : 1.0
#DATE         : 2024-05-06
#DESCRIPTION  : This script is used to muanual backup/restore etcd data.
###############################################################################
NUMBER=100
while (($NUMBER>0))
doecho "                                                                    "echo "                         请选择需要执行的操作                         "echo "********************************************************************"echo "*                                                                  *"echo "*        [ 1 ]. Etcd数据备份           [ 2 ]. Etcd数据恢复           *"   echo "*                                                                  *"echo "********************************************************************"echo "*                         按 0 推出脚本                             *"read -p "请输入将要执行的动作序号:" NUMBERecho "                                                                    "echo "                                                                    "if (($NUMBER==1))then         echo "###########--  1  --###########  开始备份Etcd数据  ###############"echo " "ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \--cacert=/etc/kubernetes/pki/etcd/ca.crt \--cert=/etc/kubernetes/pki/etcd/server.crt \--key=/etc/kubernetes/pki/etcd/server.key \snapshot save /data/backup/etcd-snapshot-`date "+%Y-%m-%d"`.dbecho ""echo "###########--  1  --############  Etcd数据备份完毕  ##############"echo " "echo "###########--  1  --############  验证Etcd快照  ##################"echo " "ETCDCTL_API=3 etcdctl --write-out=table snapshot status /data/backup/etcd-snapshot-`date "+%Y-%m-%d"`.dbecho " "	elif (($NUMBER==2))thenecho "###########--  2  --###########  下面是现有的Etcd备份文件  ########"ls /data/backup/ | sort -k 2 | nl ls /data/backup/ | sort -k 2 > /data/backup/file/file.txtread -p "#####-----------请输入要恢复的Etcd备份文件行号:" DBetcdfile=$(sed -n "${DB}p" /data/backup/file/file.txt)echo ""echo "创建恢复目录'/var/lib/etcd-restore'"mkdir /opt/backupmkdir /var/lib/etcd-restoremv /etc/kubernetes/manifests/kube* /opt/backup/ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \--cacert=/etc/kubernetes/pki/etcd/ca.crt \--cert=/etc/kubernetes/pki/etcd/server.crt \--key=/etc/kubernetes/pki/etcd/server.key \--data-dir=/var/lib/etcd-restore \snapshot restore /data/backup/$etcdfilecp /opt/backup/* /etc/kubernetes/manifests/mv /etc/kubernetes/manifests/etcd.yaml /etc/kubernetes/manifests/bak.etcd.yamlsed 's!/var/lib/etcd!/var/lib/etcd-restore!'  /etc/kubernetes/manifests/bak.etcd.yaml > /etc/kubernetes/manifests/etcd.yamlcat /etc/kubernetes/manifests/etcd.yaml | grep '/var/lib/etcd-restore'systemctl daemon-reloadsystemctl restart kubeletecho ""echo "###########--  2  --###########  Etcd数据恢复结束  ################"echo ""echo "数据恢复已结束,但仍需等待几分钟再进行查看验证..."elif (($NUMBER==0))thenecho "###########---        程序即将退出        ---######################"elseecho "########---     输入错误,请按照指定序号输入     --------############"              fi  
done

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/698126.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

享元模式详解

享元模式 1 概述 定义: ​ 运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。 2 结构 享元(Flyweight )模式中存…

论文翻译及部分笔记:LANDMARC: Indoor Location Sensing Using Active RFID

LANDMARC: Indoor Location Sensing Using Active RFID 摘要 移动计算设备和嵌入式技术的日益融合引发了“上下文感知”应用的发展和部署,其中位置是最重要的上下文。在本文中,我们介绍了一种名为LANDMARC的定位感知原型系统,该系统使用射频识…

归档文件整理规则,一键按扩展名归类,轻松打造有序文档世界!

我们的电脑里充斥着各种各样的文件:图片、文档、视频、音频……它们如同一座座无序的小山,让人眼花缭乱,难以找到所需。你是否曾为了找一个文件而翻遍整个电脑?是否曾因为文件混乱而错失了重要信息?别担心,…

Spring AI开发前期开发指导(maven依赖下载问题解决)

文章目录 说明开发条件网络环境准备本地环境准备开发工具准备 特殊说明maven配置项目jar一致下载错误解决可行的版本搭配 说明 动力节点视频教程地址,本文章学习该教程,同时说明的maven配置问题导致的项目依赖下载失败的问题和其他问题的记录。 开发条…

网络安全快速入门(十一)vi/vim

11.1 了解vi 前面我i们已经在基础命令中大致了解了vi,本章我们针对vi来细讲一下,vi和vim 11.1.1 什么是vi/vim? vi和vim,都是一个模块化的文本编辑工具,换句话讲,通过vi下的一系列的命令,可以实…

微服务部署不迷茫:4大部署模式深度解析,轻松驾驭云原生时代

微服务部署最全详解(4种常见部署模式) 微服务多实例部署 每个微服务都独立部署在自己的运行环境中,这是微服务架构的核心思想。 一般会采用每个主机多个服务实例,如下所示: 这是一种传统的应用部署方法,每个服务实例在一个或多个…

算法day05

第一题 1004. 最大连续1的个数 III 题目如下所示: 如上题所示: 题目本意是在一个数组中只有1和0,给定一个k值,将小于k个0翻转成1,然后返回最终得到最长的1的个数; 我们将这到题的意思转化为另外一种意思&…

Web3 Tools - Base58

Base58编码 Base58编码是一种用于表示数字的非常见的编码方法。它通常用于加密货币领域,例如比特币和其他加密货币的地址表示。 什么是Base58编码? Base58编码是一种将数字转换为人类可读形式的编码方法。与常见的Base64编码不同,Base58编码…

uniapp小程序:大盒子包裹小盒子但是都有点击事件该如何区分?

在开发过程中我们会遇到这种情况,一个大盒子中包裹这一个小盒子,两个盒子都有点击事件,例如: 这个时候如果点击评价有可能会点击到它所在的大盒子,如果使用css中的z-index设置层级的话如果页面的盒子多的话会混乱&…

算法学习笔记(4)-基础排序算法

##O(n^2)算法时间复杂度的排序算法 目录 ##O(n^2)算法时间复杂度的排序算法 ##选择排序 ##原理 ##图例 ##代码实现示例 ##冒泡排序 ##原理 ##图例 ##代码实现示例 ##插入排序 ##原理 ##图例 ##代码实现示例 ##总结 ##选择排序 ##原理 在一个无序的数组或者列表…

Hashmap详细解析,原理及使用方法分析

hashmap基本原理 根据的hashCode值存储数据。由数组链表组成的,Entnr数组是HashMap的主体,数组中每个元素是一个单向链表。链表则是1/1解哈希冲突而存在的。在lava8中,使用红黑树优化。当链表长度大于8并且元素个数大于64,转为红…

【3dmax笔记】028:倒角的使用方法

一、倒角描述 在3dmax中创建倒角效果可以通过多种方法实现,以下是几种常见的方法: 使用倒角修改器。首先创建一个图形(如矩形和圆),然后对齐它们,将它们转化为可编辑样条线,并附加在一起,选择要倒角的边缘,然后使用倒角修改器来调整高度、轮廓等参数。使用倒角剖面修…