集群核心组件数据备份

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

为了避免集群管理节点主机全部损坏或数据丢失,引发大规模生产故障的隐患,决定对核心数据进行异地备份。本方案针对集群核心数据进行异地备份,K8s核心备份数据包括etcd数据,kubernetes和etcd的证书文件;平台中间件minio、zookeeper数据。
Ku8各组将k8s集群核心etcd数据,etcd和kubernetes证书,minio(视具体情况而定)、zookeeper、统一放到一个指定目录,然后用Dockerfile打包成镜像,每日凌晨推送至一级harbor库。

一、k8s集群核心数据备份

1、ETCD数据备份

#创建备份目录:
mkdir -p /data/backup/etcd
#备份数据脚本:
vi etcd-backup.sh

#!/bin/bash
bakpath=/data/backup/etcd
baktime=`date +%Y%m%d`
#备份当天数据
ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/ssl/ca.crt --cert=/etc/kubernetes/ssl/etcd_client.crt --key=/etc/kubernetes/ssl/etcd_client.key --endpoints https://10.103.45.170:1159 \
snapshot save /data/backup/etcd/etcd-data-bak-${baktime}.db \
>>${bakpath}/etcd-backup.log
#清理半个月前数据
find  $bakpath -name *.db -mtime +15 -exec rm -f {} \;

#执行权限:
chmod +x etcd-backup.sh
#可根据项目实际情况配置定时任务,建议创建每日定时任务:
30 22 * * * sh /data/backup/etcd/etcd-backup.sh>/dev/null 2>&1

#每台etcd节点按同样步骤备份数据在本地

2.证书和配置 (etcd,kubernetes)

#创建备份目录:
mkdir -p /data/backup/cert
#备份数据脚本:
vi cert-backup.sh

#!/bin/bash
bakpath=/data/backup/cert
baktime=`date +%Y%m%d`
#备份当天数据
tar -czf cert-bak-${baktime}.tar.gz /etc/kubernetes \
>>${bakpath}/cert-backup.log
#清理半个月前数据
find  $bakpath -name *.tar.gz -mtime +15 -exec rm -f {} \;

#执行权限:
chmod +x cert-backup.sh
#可根据项目实际情况配置定时任务,建议创建每日定时任务:
30 22 * * * sh /data/backup/cert/cert-backup.sh>/dev/null 2>&1

3.平台中间件minio数据备份

#先评估下数据量,建议小于200M的,与etcd等一并打进镜像推送到一级。数据量偏大的,备份至nfs或冗余其它主机
#MC命令下载地址: https://dl.minio.org.cn/client/mc/release/
#初始化配置:mc config host add 服务器名称 endpoint地址 accesskey secretkey

mc alias set minio_hcct http://minio-headless.paas-middleware.svc.cluster.local:9000 minioadmin minioadmin

#创建备份目录:
mkdir -p /data/backup/middware
#备份数据脚本:
vi minio-backup.sh

#!/bin/bash
bakpath=/data/backup/middware
baktime=`date +%Y%m%d`
#备份当天数据
mc cp --recursive minio_hcct ${bakpath}/minio_${baktime} \
>>${bakpath}/minio-backup.log
#清理半个月前数据
find  $bakpath -name minio_* -mtime +15 -exec rm -f {} \;

#执行权限:
chmod +x minio-backup.sh
#可根据项目实际情况配置定时任务,建议创建每日定时任务:
30 22 * * * sh /data/backup/middware/minio-backup.sh>/dev/null 2>&1

4.平台中间件zookeeper数据备份

#这里把zk持久化数据用的nfs挂载到主机的/mnt下
#创建备份目录:
mkdir -p /data/backup/middware
#备份数据脚本:
vi zookeeper-backup.sh

#!/bin/bash
bakpath=/data/backup/middware
baktime=`date +%Y%m%d`
#备份当天数据
tar -czvf ${bakpath}/zookeeper_${baktime}.tar.gz /mnt/paas-public-datadir-zk-zk-* \
>>${bakpath}/zookeeper-backup.log
#清理半个月前数据
find  $bakpath -name zookeeper_* -mtime +15 -exec rm -f {} \;

#执行权限:
chmod +x zookeeper-backup.sh
#可根据项目实际情况配置定时任务,建议创建每日定时任务:
30 22 * * * sh /data/backup/middware/zookeeper-backup.sh>/dev/null 2>&1

二、核心数据镜像打包及推送脚本

1、核心数据进行镜像打包推送二级harbor库脚本

#!/bin/bash
bak_time=`date +%Y-%m-%d`
bak_dir="/data/backup "
tag=`date +"%Y-%m-%d"`
cd /data/backup && tar -zcf ku8-2.0-ctl.tar.gz -C /data/backup *$(date +%Y-%m-%d)* &&sleep 30s
cd $bak_dir  && docker build -t 10.24.146.220:1121/panji-05/fd-cluster/ku8-2.0-ctl:$tag .
docker push 10.24.146.220:1121/panji-05/fd-cluster/ku8-2.0-ctl:$tag
if [ $? -eq 0 ]
then 
  echo "镜像已经推送完成 "
  docker rmi 10.24.146.220:1121/panji-05/fd-cluster/ku8-2.0-ctl:$tag
else
     echo "镜像推送失败,请检查镜像生成情况"
fi
rm -rf ku8-2.0-ctl.tar.gz

2、ku8-2.0-ctl Dockerfile

FROM 10.24.146.220:1121/panji-05/busybox:1.30.1
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/ $TZ /etc/localtime && echo $TZ> /etc/timezone
#RUN mkdir -p /apps/ku8_2.0 /ku8-2.0-ctl
COPY ku8-2.0-ctl.tar.gz  /home/

3、ku8-2.0-ctl 拉取镜像导出备份文件脚本

#!/bin/bash
myimage="10.24.146.220:1121/panji-05/fd-cluster/ku8-2.0-ctl:2023-03-15"
container_id=$(docker run -itd --name ku8-bak  $myimage sh)
docker cp $container_id:/home/ku8-2.0-ctl.tar.gz  /tmp/bak/ 
cd /tmp/bak && tar -xf /tmp/bak/ku8-2.0-ctl.tar.gz
docker stop  ku8-bak     >/dev/null
docker rm ku8-bak        >/dev/null
docker rmi $myimage >/dev/null 
if [ $? -eq 0 ]
then
  echo "容器回收清理成功 "
else
     echo "清理失败,请检查"
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值