介绍
k8s集群的备份与恢复,主要就是etcd集群的备份与恢复。
ETCD一些基础查询操作
查看集群状态
1 | 二进制: |
获取某个key信息
1 | 二进制: |
获取etcd版本信息
1 | 二进制: |
获取etcd所有key
1 | 二进制: |
备份
本文备份使用 napshot save
, 每次备份一个节点
就行。
1 | 二进制举例 |
恢复
停止kube-apiserver 服务,确保apiserver 服务已经停止运行
1 | systemctl stop kube-apiserver |
停止集群中所有 ETCD 服务
1 | systemctl stop etcd |
移除 ETCD 数据
1 | mv /data/k8s/etcd/data /data/k8s/etcd/data.bak |
拷贝 ETCD 备份快照
1 | scp /var/lib/etcd_backup/etcd-snapshot-20200414.db root@master2:/data/etcd_backup_dir/ |
所有master上按照各自etcd的启动文件,恢复。
1 | ETCDCTL_API=3 etcdctl snapshot restore /data/etcd_backup_dir/etcd-snapshot-20200414.db \ |
查恢复的name,cluster-token等
1 | [root@etcd_backup_dir]# systemctl status etcd |
启动etcd,kube-apiserver
1 | systemctl start etcd |
总结
Kubernetes 集群备份主要是备份 ETCD 集群。而恢复时,主要考虑恢复整个顺序:
1 | 停止kube-apiserver --> 停止ETCD --> 恢复数据 --> 启动ETCD --> 启动kube-apiserver |
参考链接
1 | https://www.jianshu.com/p/8b483ed49f26 |