etcd 快照恢复

从快照重建 etcd 数据目录并让控制面重新指向:用于集群状态损坏或误操作后的复原,操作需要停机窗口。

备份与容灾速查数据更新于 2026-10-12

恢复流程(单节点示意)

恢复流程(单节点示意)
# 1) 停止 kube-apiserver 与 etcd
# 2) 从快照恢复到新数据目录
ETCDCTL_API=3 etcdctl snapshot restore /backup/etcd-2026-10-12.db \
  --data-dir=/var/lib/etcd-restore
# 3) 指向新数据目录并启动 etcd,确认集群健康
ETCDCTL_API=3 etcdctl endpoint health --endpoints=https://127.0.0.1:2379 \
  --cacert=... --cert=... --key=...
# 4) 启动控制面组件并验证 kubectl get nodes
影响恢复期间控制面不可用;多节点集群按官方指引逐节点处理
要点恢复出的数据目录属主与权限要和原 etcd 一致
验证恢复后核对 API 对象数量与关键资源
恢复是覆盖式动作:先保留当前数据目录副本,再执行 restore,避免两头丢失。

易错点

  • 直接覆盖原数据目录:恢复失败后连现场都没了
  • 忽略证书与成员清单:多成员集群恢复后启动顺序与 peer 配置不符导致集群起不来

数据来源与参考

  • Kubernetes 官方文档(Restoring an etcd cluster)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌