如何安全的备份Kubernetes
一, 备份ETCD
1 备份脚本
1 | cat /data/etcd_backup_dir/etcd_backup.sh |
2 定时任务
1 | crontab -e |
二, 使用Velero备份
主要优势
- 部分恢复而非全集群恢复
- 跨集群迁移资源
- 更灵活的备份策略管理
- 选择性备份特定资源
Velero包含:在集群上运行的服务器与本地运行的命令行客户端这两部分
1 客户端安装
1 | tar -zxvf velero-v1.16.0-linux-amd64.tar.gz |
2 服务端安装
2.1 镜像准备
1 | docker pull ccr.ccs.tencentyun.com/ccops/all:velero-v1.16.0 |
2.2 存储准备
只要是符合s3协议即可,官方带了个minio部署到k8s的yaml
带的这个没做数据持久化,并且还是弱密码,修改下
1 | cat velero-v1.16.0-linux-amd64/examples/minio/00-minio-deployment.yaml |
2.3 安装服务端
建议存到文件里
网上都是直接命令行,如果以后升级不好维护,建议存储到文件里
1 | cat velero-install.sh |
3 测试
3.1 安装测试nginx
建议存到文件里
官网测试的nginx例子pull不下来镜像,自己需要手动改下
1 | kubectl apply -f velero-v1.16.0-linux-amd64/examples/nginx-app/base.yaml |
3.2 备份
1 | velero backup create nginx-backup --selector app=nginx |
3.3 还原
3.3.1 模拟丢失配置
1 | kubectl delete namespace nginx-example |
3.3.2 还原
1 | velero restore create --from-backup nginx-backup |
4 高级备份功能
1 | # 每天1点备份一次nginx-example空间资源 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 OpsCC!








