学习记录---kubernetes中备份和恢复etcd
一、简介
ETCD是kubernetes的重要组成部分,它主要用于存储kubernetes的所有元数据,我们在kubernetes中的所有资源(node、pod、deployment、service等),如果该组件出现问题,则可能会导致kubernetes无法使用、资源丢失等情况。因此,我们还是要对该组件进行定期备份。
二、备份及验证操作
备份命令:
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
--cacert=<trusted-ca-file> --cert=<cert-file> --key=<key-file> \
snapshot save <backup-file-location>/etcd_`date +%Y-%m-%d-%H-%M`_snapshot.db
其中,trusted-ca-file、cert-file、key-file可以从etcd的pod里面里面获得
kubectl describe pod `kubectl get pods -A|grep etcd|awk '{print $2}'` -n kube-system
三、验证备份
source /etc/profile
for i in `ls /app/etcd_backupfile`
do
echo ETCDCTL_API=3 etcdctl --write-out=table snapshot status $i >> /<backup-file-location>/check_backupfile_`date +%Y%m%d`.sh
done
验证脚本执行:
sh /<backup-file-location>/check_backupfile_`date +%Y%m%d`.sh
四、验证恢复
ETCDCTL_API=3 etcdctl snapshot restore --data-dir <data-dir-location>/etcd_`date +%Y-%m-%d-%H-%M`_snapshot.db