Write by lyc at 2021-7-12
Ucloud ETCD 备份
etcd 备份与恢复
1.二进制部署方式备份
备份:
选择 1~2 个 etcd
节点来执行备份动作,使备份数据冗余。
1 2 3 4 5 6 7 8 9 10
| $ mkdir -p /data/backup/etcd_backup
$ ETCDCTL_API=3 /opt/etcd/bin/etcdctl \ snapshot save /data/backup/etcd_backup/snap_`date "+%Y%m%d%H%M%S"`.db \ --endpoints=https://192.168.100.190:2379 \ --cacert=/opt/etcd/ssl/ca.pem \ --cert=/opt/etcd/ssl/server.pem \ --key=/opt/etcd/ssl/server-key.pem
|
恢复:
先暂停所有节点的 kube-apiserver
(可选) 和 etcd
,防止有数据写入 etcd
集群
1 2 3
| systemctl stop kube-apiserver systemctl stop etcd mv /var/lib/etcd/default.etcd /var/lib/etcd/default.etcd.bak
|
依次在每个 etcd
节点上执行恢复动作
1 2 3 4 5 6 7
| ETCDCTL_API=3 /opt/etcd/bin/etcdctl snapshot restore snap.db \ --name etcd-1 \ --initial-cluster="etcd-1=https://192.168.100.190:2380,etcd-2=https://192.168.100.191:2380,etcd-3=https://192.168.100.192:2380" \ --initial-cluster-token=etcd-cluster \ --initial-advertise-peer-urls=https://192.168.100.190:2380 \ --data-dir=/var/lib/etcd/default.etcd
|
启动所有节点的 kube-apiserver
和 etcd
1 2
| systemctl start kube-apiserver systemctl start etcd
|
2.kubeadm 部署方式备份
备份:
1 2 3 4 5 6
| ETCDCTL_API=3 etcdctl \ snapshot save snap.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
|
恢复:
先暂停 kube-apiserver 和 etcd 容器
1 2
| mv /etc/kubernetes/manifests /etc/kubernetes/manifests.bak mv /var/lib/etcd/ /var/lib/etcd.bak
|
恢复
1 2 3
| ETCDCTL_API=3 etcdctl \ snapshot restore snap.db \ --data-dir=/var/lib/etcd
|
启动kube-apiserver和etcd容器
1
| mv /etc/kubernetes/manifests.bak /etc/kubernetes/manifests
|