Forest-LK零S
- 已编辑
以下步骤(1)(2)步骤都需要在etcd节点执行。
1、etcd备份脚本,其中有些参数需根据自身环境进行修改。
- etcd_endpoint值为各个etcd节点的ip加2379端口组成,如:endpoints=“https://192.168.137.231:2379,https://192.168.137.232:2379,https://192.168.137.233:2379″;
- inventory_hostname值为每台etcd机器的hostname值,不同etcd机器需要配不同的值,可参考/etc/etcd.env里面的值。
创建文件etcd-backup.sh。
#! /bin/bash
ETCDCTL_PATH='/usr/local/bin/etcdctl'
ENDPOINTS='{{ etcd_endpoint }}'
ETCD_DATA_DIR="/var/lib/etcd"
BACKUP_DIR="/var/backups/kube_etcd/etcd-$(date +%Y-%m-%d_%H:%M:%S)"
ETCDCTL_CERT="/etc/ssl/etcd/ssl/admin-{{ inventory_hostname }}.pem"
ETCDCTL_KEY="/etc/ssl/etcd/ssl/admin-{{ inventory_hostname }}-key.pem"
ETCDCTL_CA_FILE="/etc/ssl/etcd/ssl/ca.pem"
[ ! -d $BACKUP_DIR ] && mkdir -p $BACKUP_DIR
export ETCDCTL_API=2;$ETCDCTL_PATH backup --data-dir $ETCD_DATA_DIR --backup-dir $BACKUP_DIR
sleep 3
{
export ETCDCTL_API=3;$ETCDCTL_PATH --endpoints="$ENDPOINTS" snapshot save $BACKUP_DIR/snapshot.db \
--cacert="$ETCDCTL_CA_FILE" \
--cert="$ETCDCTL_CERT" \
--key="$ETCDCTL_KEY"
} > /dev/null
sleep 3
cd $BACKUP_DIR/../;ls -lt |awk '{if(NR>10){print "rm -rf "$9}}'|sh
2、定时备份操作,etcd-backup.sh脚本放到/opt/etcd_back
- 加入crontab指令:crontab -e
- 新增一行指令,每天凌晨2点执行:0 2 * * * sh /opt/etcd_back/etcd-backup.sh