docker容器的minio大版本升级与数据迁移

前言

minio官方爆出一个安全漏洞

升级与数据迁移方案

在升级时遇到一个问题:当前环境的版本太老,是2021的老版本,要升级到安全版本RELEASE.2023-03-20T20-16-18Z,无法通过数据挂载的方式直接升级。

MinIO 网关和相关文件系统模式于 2020 年 7 月进入功能冻结状态。2022 年 2 月,MinIO 宣布弃用 MinIO 网关,随着弃用公告,MinIO还宣布该功能将在六个月内删除。

自发布2022-10-29T06-21-33Z起,MinIO网关和相关文件系统模式代码已被删除。 使用standalone 或 filesystem模式的老版本minio在升级到 RELEASE.2022-10-29T06-21-33Z 或更高版本时,会无法启动。

要升级到 RELEASE.2022-10-29T06-21-33Z 或更高版本,使用standalone 或 filesystem模式的用户必须先部署一个新的minio实例,然后手动将配置和数据内容迁移到新实例(注意新实例不能和原来老版本minio在相同的目录,如果是以磁盘为单位部署,则需要使用新的磁盘。总之,新版本在老版本数据盘上,是无法直接启动的)。

部署安全版本 minio

提供两种方式获取镜像

1.直接通过 docker 拉取安全版本

docker pull minio/minio:RELEASE.2023-03-20T20-16-18Z.fips

2.已有镜像包导入安全版本

链接: https://pan.baidu.com/s/1ebVmvRpTLUNG9o9qj81iiw?pwd=qk5h 提取码: qk5h

# 镜像包上次至服务器/home 目录 导入镜像
docker load --input  /home/minio_RELEASE.2023-03-20T20-16-18Z.tar

导入完成后,查看镜像是否成功导入

image.png

构建并启动安全版本

docker run --name minio1 -p 9100:9000  -p 9190:9090  -d -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=admin@123456" -v /home/minio2023:/data -v /home/minio2023-config:/root/.minio minio/minio:RELEASE.2023-03-20T20-16-18Z.fips server  /data --console-address ":9090" --address ":9000"

注意:因数据迁移需要,必须同时存在新旧版本 minio。这时,新版需与旧版 minio 端口区分,我这里旧端口为 9000、9090, 那么新端口我设置的为 9100、9190。

查看是否安装成功

image.png

数据迁移

提供两种方式,安装迁移工具minio/mc

1.直接通过 docker 拉取,并进入容器

docker run -it --entrypoint=/bin/sh minio/mc

2.已有镜像包导入

链接: https://pan.baidu.com/s/16YxGMnEuZXWUMNC_Awtb0A?pwd=cm8n 提取码: cm8n

# 镜像包上次至服务器/home 目录 导入镜像
docker load --input  /home/mc.tar
# 构建并加入容器
docker run -it --entrypoint=/bin/sh minio/mc

开始迁移

在容器内运行,添加新旧版本配置

# oldminio旧版标识名称,192.168.1.79为内网ip,api端口为9000,后面跟账号密码
mc alias set oldminio http://192.168.1.79:9000 admin admin@123456
# newminio新版标识名称,192.168.1.79为内网ip,api端口为9100,后面跟账号密码
mc alias set newminio http://192.168.1.79:9100 admin admin@123456

执行迁移

mc mirror oldminio newminio

迁移完成image.png

结尾

不影响已有业务,数据迁移完成后,关闭并卸载新旧版本,如有必要,删除旧版目录。构建代码修改成之前旧版端口9000、9090,重新构建安全版本。

# 停止容器 f8b682e3db1d、afa64e32c97d 为新旧容器 ID
docker stop f8b682e3db1d afa64e32c97d
# 卸载容器
docker rm f8b682e3db1d afa64e32c97d
# 修改端口配置,重新构建容器
docker run --name minio3 -p 9000:9000  -p 9090:9090  -d -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=admin@123456" -v /home/minio2023:/data -v /home/mini
o2023-config:/root/.minio minio/minio:RELEASE.2023-03-20T20-16-18Z.fips server  /data --console-address ":9090" --address ":9000"

至此,升级成功。

image.png

image.png

版权声明:
作者:白纸画
链接:https://www.fanyicloud.cn/article-63.fan
来源:白纸画的博客
文章版权归作者所有,未经允许请勿转载。

THE END
二维码
打赏
< <上一篇