GBase 8a
其他
文章

etcd 备份恢复

发表于2026-06-30 13:30:057次浏览0个评论

**备份:**
```bash
#!/bin/bash
BACKUP_DIR="/backup/etcd"
DATE=$(date +%Y%m%d_%H%M%S)

ETCDCTL_API=3 etcdctl snapshot save ${BACKUP_DIR}/etcd-${DATE}.db \
 --endpoints=https://127.0.0.1:2379 \
 --cacert=/etc/kubernetes/pki/etcd/ca.crt \
 --cert=/etc/kubernetes/pki/etcd/server.crt \
 --key=/etc/kubernetes/pki/etcd/server.key

# 保留最近7天备份
find ${BACKUP_DIR} -name "etcd-*.db" -mtime +7 -delete
```

**恢复:**
```bash
# 停止 kubelet
systemctl stop kubelet

# 停止所有容器
crictl stop $(crictl ps -q)
crictl rm $(crictl ps -a -q)

# 移动旧数据
mv /var/lib/etcd /var/lib/etcd.old

# 恢复 etcd
ETCDCTL_API=3 etcdctl snapshot restore snapshot.db \
 --data-dir=/var/lib/etcd

# 重启 kubelet
systemctl start kubelet

评论已关闭