1. 程式人生 > 其它 >etcd資料備份

etcd資料備份

###etcd備份資料
cp etcdctl /usr/bin/

#檢視etcd狀態
ETCDCTL_API=3 etcdctl --cacert=/opt/etcd/ssl/ca.pem --cert=/opt/etcd/ssl/server.pem --key=/opt/etcd/ssl/server-key.pem --endpoints=https://172.22.154.215:2379,https://172.22.154.216:2379,https://172.22.154.217:2379 endpoint health


備份資料
ETCDCTL_API=3 etcdctl --cacert=/opt/etcd/ssl/ca.pem --cert=/opt/etcd/ssl/server.pem --key=/opt/etcd/ssl/server-key.pem --endpoints=https://172.22.154.215:2379 snapshot save /data/etcd_backup_dir/etcd-snapshot-`date +%Y%m%d`.db


備份指令碼
####為避免叢集伺服器崩潰建議將備份資料在其它伺服器上也儲存一份!
#!/usr/bin/env bash

date;

CACERT="/opt/etcd/ssl/ca.pem"
CERT="/opt/etcd/ssl/server.pem"
EKY="/opt/etcd/ssl/server-key.pem"
ENDPOINTS="172.22.154.215:2379"

ETCDCTL_API=3 etcdctl \
--cacert="${CACERT}" --cert="${CERT}" --key="${EKY}" \
--endpoints=${ENDPOINTS} \
snapshot save /data/etcd_backup_dir/etcd-snapshot-`date +%Y%m%d`.db

# 備份保留30天
find /data/etcd_backup_dir/ -name *.db -mtime +30 -exec rm -f {} \;

 


#恢復驗證
停止kube-apiserver
停止etcd叢集

移走etcd資料
cd /var/lib/etcd/
mv default.etcd default.etcd.bak

 

拷貝備份資料
scp etcd-snapshot-20220328.db node216:/data/etcd_backup_dir/
scp etcd-snapshot-20220328.db node217:/data/etcd_backup_dir/

恢復資料

ETCDCTL_API=3 etcdctl snapshot restore /data/etcd_backup_dir/etcd-snapshot-20220328.db \
--name etcd-1 \
--initial-cluster "etcd-1=https://172.22.154.215:2380,etcd-2=https://172.22.154.216:2380,etcd-3=https://172.22.154.217:2380" \
--initial-cluster-token etcd-cluster \
--initial-advertise-peer-urls https://172.22.154.215:2380 \
--data-dir=/var/lib/etcd/default.etcd

ETCDCTL_API=3 etcdctl snapshot restore /data/etcd_backup_dir/etcd-snapshot-20220328.db \
--name etcd-2 \
--initial-cluster "etcd-1=https://172.22.154.215:2380,etcd-2=https://172.22.154.216:2380,etcd-3=https://172.22.154.217:2380" \
--initial-cluster-token etcd-cluster \
--initial-advertise-peer-urls https://172.22.154.216:2380 \
--data-dir=/var/lib/etcd/default.etcd

ETCDCTL_API=3 etcdctl snapshot restore /data/etcd_backup_dir/etcd-snapshot-20220328.db \
--name etcd-3 \
--initial-cluster "etcd-1=https://172.22.154.215:2380,etcd-2=https://172.22.154.216:2380,etcd-3=https://172.22.154.217:2380" \
--initial-cluster-token etcd-cluster \
--initial-advertise-peer-urls https://172.22.154.217:2380 \
--data-dir=/var/lib/etcd/default.etcd

啟動etcd叢集
systemctl start etcd
檢視叢集狀態
systemctl status etcd

啟動kube-apiserver
systemctl start kube-apiserver
systemctl status kube-apiserver