38.B站薪享宏福笔记——第十三章(3)Etcd BackUP

13 B站薪享宏福笔记——第十三章

                                    —— Kubernetes 中必备的工具组件

13.3 Etcd backup

 

 

 

13.3 生产中的备份脚本

[root@master01 ~]# cat /opt/etcd/etcd_snapshot.sh
#!/bin/bash

# 配置参数(根据实际环境修改)
WORK_DIR="/opt/etcd"
BACKUP_DIR="/data/etcd/snapshot"  # 备份存储路径 
RETENTION_DAYS=7                     # 保留最近7天备份
ETCDCTL_API=3                        # 使用v3 API
ENDPOINTS="https://10.30.129.120:2379"  # etcd访问地址
CA_CERT=${WORK_DIR}"/ssl/ca.pem"          # TLS证书路径 
CERT=${WORK_DIR}"/ssl/server.pem"
KEY=${WORK_DIR}"/ssl/server-key.pem"

# 创建备份目录
mkdir -p ${BACKUP_DIR}

# 生成时间戳格式的备份文件名
BACKUP_FILE="${BACKUP_DIR}/etcd-snapshot-$(date +%Y%m%d%H%M%S).db"

# 执行备份(使用etcdctl内置快照功能)
${WORK_DIR}/bin/etcdctl --cacert=${CA_CERT} --cert=${CERT} --key=${KEY} \
  --endpoints=${ENDPOINTS} snapshot save ${BACKUP_FILE}

# 检查备份是否成功
if [ $? -eq 0 ]; then
  echo "Backup succeeded: ${BACKUP_FILE}"
else
  echo "Backup failed!" >&2
  exit 1
fi

# 清理过期备份(保留最近N天)
find ${BACKUP_DIR} -type f -name "etcd-snapshot-*.db" -mtime +${RETENTION_DAYS} -exec rm -f {} \;

 

 

 

 

 

 

———————————————————————————————————————————————————————————————————————————

                                                                                                                         无敌小马爱学习

posted on 2025-08-08 14:55  马俊南  阅读(119)  评论(0)    收藏  举报