longhorn备份

云原生longhornbackup约 480 字大约 2 分钟

前置准备

  1. 集群内安装minio,并上传文件,模拟业务应用
  2. 集群外搭建minio 作为longhorn 备份的存储服务

集群内安装minio

此minio用作模拟业务应用使用 安装参考: Bitnami Minioopen in new window

minio
minio

集群外安装minio

此minio用以作为备份的存储使用

docker run -p 9000:9000 -p 9001:9001 \
     --net=host \
     --name minio \
     -v $PWD/data:/data \
     -v $PWD/config:/root/.minio \
     -d --restart=always \
     -e "MINIO_ACCESS_KEY=admin" \
     -e "MINIO_SECRET_KEY=Passw0rd" \
     minio/minio:RELEASE.2021-11-09T03-21-45Z \
     server /data --console-address ":9001" -address ":9000"

添加secret

这个secret的ns需要和longhorn保持一致

kubectl create secret generic minio-secret \
    --from-literal=AWS_ACCESS_KEY_ID=admin \
    --from-literal=AWS_SECRET_ACCESS_KEY=Passw0rd \
    --from-literal=AWS_ENDPOINTS=http://xxxxxx:9000  \
    -n longhorn-system

备份

  1. 集群外minio,创建备份存放的bucket 如: longhorn

  2. longhorn 关联S3 服务

longhorn设置
longhorn设置
  1. 模拟业务使用,上传文件到 集群内minio 服务中
文件上传
文件上传
  1. 备份
备份
备份
label
label

恢复

  1. 删除集群内的minio服务,并清空volume。模拟数据丢失
卸载应用
卸载应用
  1. 将备份数据转换为 恢复卷
  1. 激活恢复卷
  1. 挂载volume
挂载已存在的卷
挂载已存在的卷

定时备份

入口一 为创建定时任务 入口二 可关联定时任务,也可创建定时任务

定时任务
定时任务

扩容

  1. 根据应用容器找到对应的PVC
  2. 将容器副本数设置为0,使PVC处于未分配模式
  3. 修改申请磁盘空间(限制只能扩容不能缩容)
  4. 恢复容器副本数,使PVC处于分配模式,重新挂载