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
导入完成后,查看镜像是否成功导入
构建并启动安全版本
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。
查看是否安装成功
数据迁移
提供两种方式,安装迁移工具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
迁移完成
结尾
不影响已有业务,数据迁移完成后,关闭并卸载新旧版本,如有必要,删除旧版目录。构建代码修改成之前旧版端口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"
至此,升级成功。
版权声明:
作者:白纸画
链接:https://www.fanyicloud.cn/article-63.fan
来源:白纸画的博客
文章版权归作者所有,未经允许请勿转载。

白纸画
白纸画