首页 > 其他分享 >etcd备份

etcd备份

时间:2022-11-22 13:45:10浏览次数:69  
标签:kubernetes -- 备份 server etc etcd pki

etcd是kubernetes集群极为重要的一块服务,存储了kubernetes集群所有的数据信息,如Namespace、Pod、Service、路由等状态信息。如果etcd集群发生灾难或者 etcd 集群数据丢失,都会影响k8s集群数据的恢复。因此,通过备份etcd数据来实现kubernetes集群的灾备环境十分重要。

你必须拥有一个 Kubernetes 的集群,同时你的 Kubernetes 集群必须带有 kubectl 命令行工具。 建议在至少有两个节点的集群上运行本教程,且这些节点不作为控制平面主机。
该次实验采取master为1台

查看集群的状态

kubectl get node -o wide

image.png
单独添加一个硬盘作为etcd备份的磁盘

#添加20G的硬盘作为etcd存储,格式化为exit4
#添加完了之后进行扫描
echo "- - -" > /sys/class/scsi_host/host(序号)/scan
 lsblk进行查看
#进行逻辑卷操作,需要注意的是,最后的路径请根据自己的情况来
 pvcreate /dev/sdc
 vgcreate nfs /dev/sdc
lvcreate -L +19G -n backup  etcd  #加19GB
 mkfs.ext4 /dev/mapper/etcd-backup  #进行格式化
mkdir etcd_backup #建立文件夹
mount /dev/mapper/etcd-backup /root/etcd_backup 进行手动挂载
blkid#查看uuid
vi /etc/fstab #进行自动挂载的操作
df -h 查看是否挂载,如果没有,请检查操作是否正确

下载etcd的包,可以使用scp上传到主机,或者wget拉取保存,然后进行解压的操作,发现有一个etcdl的文件,

https://github.com/etcd-io/etcd/releases

 cp etcd-v3.4.22-linux-amd64/etcdctl /usr/local/sbin/

把文件复制到local目录,就可以删除etcd的包了

进行手动 的备份

kubectl get pod -n kube-system -o wide查看相关的端口
--endpoints之后是master的ip:etcdl的端口,
--cert=/etc/kubernetes/pki/etcd/server,--key=/etc/kubernetes/pki/etcd,--cacert=/etc/kubernetes/pki/etcd目录下是需要使用到的证书,这个请自行查看

mkdir etcd_backup
cd  etcd_backup
ETCDCTL_API=3 etcdctl --endpoints 192.168.10.134:2379 \ 
--cert=/etc/kubernetes/pki/etcd/server.crt\
--key=/etc/kubernetes/pki/etcd/server.key\
--cacert=/etc/kubernetes/pki/etcd/ca.crt\  
member list
ETCDCTL_API=3 etcdctl --endpoints 192.168.10.134:2379\
--cert=/etc/kubernetes/pki/etcd/server.crt\
--key=/etc/kubernetes/pki/etcd/server.key\
--cacert=/etc/kubernetes/pki/etcd/ca.crt\
endpoint status --write-out=table
ETCDCTL_API=3 etcdctl --endpoints 192.168.10.134:2379\
--cert=/etc/kubernetes/pki/etcd/server.crt\
--key=/etc/kubernetes/pki/etcd/server.key\
--cacert=/etc/kubernetes/pki/etcd/ca.crt\
 endpoint health
 ETCDCTL_API=3 etcdctl --endpoints 192.168.10.134:2379\
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
--cacert=/etc/kubernetes/pki/etcd/ca.crt\
 snapshot save my.db
 ETCDCTL_API=3 etcdctl --endpoints 192.168.10.134:2379\
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
--cacert=/etc/kubernetes/pki/etcd/ca.crt\
snapshot status my.db --write-out=table
ETCDCTL_API=3 etcdctl --endpoints 192.168.10.134:2379 \
--cert=/etc/kubernetes/pki/etcd/server.crt\   
--key=/etc/kubernetes/pki/etcd/server.key \
--cacert=/etc/kubernetes/pki/etcd/ca.crt\
snapshot save `date "+%F|%T"`.db
ETCDCTL_API=3 /usr/local/sbin/etcdctl --endpoints 192.168.10.134:2379 \
  --cert=/etc/kubernetes/pki/etcd/server.crt \
  --key=/etc/kubernetes/pki/etcd/server.key \
  --cacert=/etc/kubernetes/pki/etcd/ca.crt \
  snapshot save /root/etcd_backup/`date "+%F-%T"`.db

自动备份

crontab -e  编辑任务
*/2 * * * *  bash /root/backup.sh #两分钟执行一次备份脚本
#!/usr/bin/bash

ETCDCTL_API=3 /usr/local/sbin/etcdctl --endpoints 192.168.10.134:2379 \
  --cert=/etc/kubernetes/pki/etcd/server.crt \
  --key=/etc/kubernetes/pki/etcd/server.key \
  --cacert=/etc/kubernetes/pki/etcd/ca.crt \
  snapshot save /root/etcd_backup/`date "+%F-%T"`.db

查看效果
image.png

标签:kubernetes,--,备份,server,etc,etcd,pki
From: https://www.cnblogs.com/yutoujun/p/16914879.html

相关文章

  • ASP.NET CORE MVC 开发常用代码备份
    1.在页面中进行注入配置文件操作注册对象classProgram{staticvoidMain(){Host.CreateDefaultBuilder().ConfigureWebHostDefaults(builder=>......
  • Linux运维笔记[6]-备份和恢复
    备份[https://www.cnblogs.com/OneDirection/articles/9797833.html]因为服务器主要是通过docker容器运行微服务,所以主要备份docker镜像docker退出状态码[https://z......
  • MySQL安全管理数据备份与还原
    MySQL安全管理数据备份与还原数据备份与还原分为1)单表数据备份与还原2)文件备份与还原3)SQL备份与还原备份与还原的基本概念什么是备份备份:backup,将数据或者结......
  • pg_archivecleanup清除备份之前的归档
     1.脚本内容如下[postgres@localhosttmp]$morepg_archivecleanup.sh#!/bin/bashwallog_dir='/opt/pg14/archivelog/20221121'cd${wallog_dir}ls-rt|grep......
  • Linux自动备份MySql数据库
    1.创建备份数据库文件的根目录:#mysql备份文件目录cd/data/db/mysql2.创建各个数据库的备份文件目录  3.编写shell脚本3.1 在usr/sbin目录下分别创建数据......
  • rk3328或树莓派开发板系统镜像备份制作剪裁
     手上有多块fireflyrk3328开发板,在一块开发板上面安装了ubuntu和ROSkinetic之后,想着直接把镜像备份出来,然后再将镜像刷入其他的内存卡,这样的话就无需一一去安装系统和ros......
  • python-etcd
    安装pipinstallpython-etcdp查询所有的keys,或者以某个前缀的keysetcdctlget--prefix""etcdctlget--prefix "/nodes"只列出keys,不显示值etcdctlget--pre......
  • 定时自动备份【补定时命令】
    编辑定时执行crontab-e每周日晚上9点执行start.sh脚本021**7/home/Network_Config_Backup/start.shvi/etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sb......
  • 定时自动备份【脚本】
    建立执行脚本vi/home/Network_Config_Backup/start.sh#!/bin/bash#使用该脚本前需要安装tftp,xinetd,expect#取时间戳BACKUP_DATA=`date+%Y%m%d`#创建时间戳的备......
  • 定时自动备份【TFTP服务器搭建】
    一、准备在centos7上安装部署TFTP服务器。(我使用版本:CentOSLinuxrelease7.9.2009(Core))二、安装过程1,安装TFTP服务器yuminstallxinetdtftptftp-server2、......