0. 概述
Longhorn 支持备份到 NFS 或者 S3, 而 MinIO 就是符合 S3 的对象存储服务。通过 docker 部署 minio 服务,然后在 Longhorn UI 中配置备份服务即可。
1. MinIO 部署
1.1 创建备份目录
mkdir -p /home/longhorn-backup/minio/data
mkdir -p /home/longhorn-backup/minio/root
1.2 启动 minio 容器
docker run -d -p 9000:9000 -p 9001:9001 --name=longhorn-backup-minio \
-e MINIO_ROOT_USER=minio \
-e MINIO_ROOT_PASSWORD=MyPassword \
-v /home/longhorn-backup/minio/data:/data \
-v /home/longhorn-backup/minio/root:/root/.minio \
minio:RELEASE.2023-03-09T23-16-13Z \
server /data --console-address :9001
2. MinIO 配置
2.1 创建桶(bucket)
使用 root 权限用户登陆 MinIO 控制台,创建桶
2.2 创建用户,勾选 readwrite 策略
2.3 创建用户的 Access Keys
创建完成后下载保存
2.4 设置服务器区域(Region)
设置完成后点击上方 Restart
重启服务
3. Longhorn 配置
3.1 生成 base64 格式的连接 url
例如 minio 服务地址为 http://192.168.1.100:9000
,在服务器中使用命令生成
echo -n http://192.168.1.100:9000 | base64
3.2 在 longhorn-system
命名空间下创建【密文】
其中 AWS_ENDPOINTS
为上一步生成的 base64 串,另外两项为之前从 minio 创建的 access key
3.3 配置备份地址
- Backup Target 格式为
s3://{桶名}@{区域名}
- Backup Target Credential Secret 为之前创建的密文名
3.4 创建备份卷
在 Volume 中进入 pvc 详情,点击【Create Backup】填写标签即可进行备份
在【Backup】中可以看到刚才创建的备份卷
在 MinIO 的桶中也可以看到对应的备份文件