Kubernetes备份恢复方案Velero 快速实践
1. 什么是 Velero?
Velero是go语言开发的,用于提供备份和恢复 Kubernetes 集群资源和持久卷的开源工具,可在公有云平台或本地环境中运行 Velero。
Velero 的功能注意包括:
- 对集群进行备份,并在丢失时进行恢复。
- 将集群资源迁移到其他集群。
- 复制生产集群到开发和测试集群。
Velero 由以下组件组成:
- 运行在集群上的服务器
- 本地运行的命令行客户端
2. Velero兼容性矩阵
Velero version | Expected Kubernetes version compatibility | Tested on Kubernetes version |
---|---|---|
1.15 | 1.18-latest | 1.28.8, 1.29.8, 1.30.4 and 1.31.1 |
1.14 | 1.18-latest | 1.27.9, 1.28.9, and 1.29.4 |
1.13 | 1.18-latest | 1.26.5, 1.27.3, 1.27.8, and 1.28.3 |
1.12 | 1.18-latest | 1.25.7, 1.26.5, 1.26.7, and 1.27.3 |
1.11 | 1.18-latest | 1.23.10, 1.24.9, 1.25.5, and 1.26.1 |
1.10 | 1.18-latest | 1.22.5, 1.23.8, 1.24.6 and 1.25.1 |
本文环境k8s版本为1.27.6,采用verelero 1.15.0进行测试。
注意
如果用于生产环境建议严格遵守上述配套原则。
3. Velero 安装
安装 velero 客户端
这里将velero客户端安装到k8s master节点上:
# 下载
wget https://github.com/vmware-tanzu/velero/releases/download/v1.15.0/velero-v1.15.0-linux-amd64.tar.gz
# 解压安装
tar xf velero-v1.15.0-linux-amd64.tar.gz
cd velero-v1.15.0-linux-amd64
sudo mv velero /usr/local/bin
下载地址:https://github.com/vmware-tanzu/velero/releases/latest
安装 velero 服务端
本文使用minio作为velero备份的存储方案,搭建minio参考相关的文档,在minio创建备用的bucket,桶名为k8s1-velero-backup
。
在本地创建桶访问凭证文件velero-minio-credentials
,内容如下,ak和sk对应minio的管理员和密码。
[default]
aws_access_key_id = minio
aws_secret_access_key = minio123
执行如下命令安装velero服务端:
velero install \
--provider aws \
--plugins harbor.jdzx.local/velero/velero-plugin-for-aws:v1.11.0 \
--image harbor.jdzx.local/velero/velero:v1.15.0 \
--namespace velero \
--bucket k8s1-velero-backup \
--default-volumes-to-fs-backup \