在 Kubernetes 中备份和还原 etcd 可以采用以下方法:
备份 etcd:
使用 kubectl 命令行工具执行以下命令,将 etcd 数据备份到本地文件:
$ kubectl exec -n kube-system etcd-<hostname> -- sh -c "ETCDCTL_API=3 /usr/local/bin/etcdctl snapshot save /var/lib/etcd/snapshot.db" $ kubectl cp -n kube-system etcd-<hostname>:/var/lib/etcd/snapshot.db ./snapshot.db将备份文件(snapshot.db)复制到安全位置。
还原 etcd:
将备份文件(snapshot.db)放置到 etcd 服务器的
/var/lib/etcd目录下。使用以下命令完成 etcd 数据的还原:
$ ETCDCTL_API=3 /usr/local/bin/etcdctl snapshot restore /var/lib/etcd/snapshot.db \ --data-dir=/var/lib/etcd-backup \ --initial-cluster=<etcd-cluster> \ --initial-advertise-peer-urls=https://<hostname>:2380 \ --name=<hostname>
其中 <etcd-cluster> 是 etcd 集群中各个节点的配置信息,例如:etcd-0=https://192.168.10.10:2380,etcd-1=https://192.168.10.11:2380,etcd-2=https://192.168.10.12:2380;<hostname> 为当前节点的主机名。
- 启动 etcd 服务。
注意:还原 etcd 数据会覆盖当前的数据,因此务必确认备份文件是正确的。




