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