1 |
kubectl get all --all-namespaces -o yaml > all-deploy-service.yaml |
上边的命令可以帮我们备份所有的对象,我们也可以通过备份ETCD来备份,我们还需要通过命令行来备份etcd
创建一个snapshot
1 |
ETCDCTL_API=3 etcdctl snapshot save snapshot.db |
查看snapshot状态
1 |
ETCDCTL_API=3 etcdctl snapshot status snapshot.db |
如何恢复呢?我们需要先手动停止kube-apiserver (如果不停止,我们是没有办法restore)
1 2 3 4 5 6 7 8 9 10 |
ETCDCTL_API=3 etcdctl \ snapshot restore snapshot.db \ --initial-cluster master-1=https://192.168.5.11:2380,master-2=https://192.168.5.12:2380 \ --initial-cluster-token etcd-cluster-1 \ --initial-advertise-peer-urls https://${internal_ip}:2380 or $ ETCDCTL_API=3 etcdctl --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 snapshot save /tmp/snapshot-pre-boot.db. |
然后执行:
1 2 3 |
systemctl daemon-reload service etcd restart service kube-apiserver start |
注意etcdctl需要制定所有的key
1 2 3 |
ETCDCTL_API=3 etcdctl --endpoints=https://[127.0.0.1]:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt \ --cert=/etc/kubernetes/pki/etcd/etcd-server.crt \ --key=/etc/kubernetes/pki/etcd/etcd-server.key snapshot save /tmp/snapshot.db |
Latest posts by Zhiming Zhang (see all)
- aws eks node 自动化扩展工具 Karpenter - 8月 10, 2022
- ReplicationController and ReplicaSet in Kubernetes - 12月 20, 2021
- public key fingerprint - 5月 27, 2021