网络知识 娱乐 【玩转Lighthouse】使用MinIO搭建云原生对象存储服务

【玩转Lighthouse】使用MinIO搭建云原生对象存储服务

1. 简介

本文从通用的AWS S3对象存储协议,以及在MinIO中使用 腾讯云对象存储 的场景出发,介绍基于MinIO云原生对象存储的搭建步骤和MinIO客户端的使用示例,以及MinIO SDK使用示例;包括在 CentOS8 中运行minIO服务端、minIO存储网关,在Docker环境中单点单容器运行minIO服务端、单点多容器运行minIO服务端以及单点单容器运行minIO存储网关

2. 环境准备

2.1 腾讯云轻量应用服务器

>>点击这里购买 Lighthouse轻量应用服务器

Lighthouse轻量应用服务器 购买页面

2.2 下载 MinIO服务端和客户端

  • MinIO 服务端 Url: https://dl.min.io/server/minio/release/linux-amd64/minio
  • MinIO 客户端 Url: https://dl.min.io/client/mc/release/linux-amd64/mc
  • 兼容腾讯云COS的 MinIO 服务端&客户端 Url: https://cloud.tencent.com/developer/article/1982033

3. 搭建 MinIO 服务端

3.1 在Docker环境中单点单容器运行minIO服务端

3.1.1 在轻量应用服务器界面找到刚才购买的实例

轻量应用服务器界面

3.1.2 点击重装系统

重装系统

3.1.3 选择官方镜像-Docker基础镜像-CentOS8.2-Docker20

官方镜像-Docker基础镜像-CentOS8.2-Docker20

3.1.4 新建容器

新建容器
容器配置

3.1.4.1 容器基础配置

  • 容器名称:MinIO
  • Docker镜像:ccr.ccs.tencentyun.com/minio/minio-for-cos
  • 版本Tag:latest
  • 启动命令:server /data --console-address ":80"

3.1.4.2 容器高级配置

端口配置

  • 服务器端口 80 容器端口 80 //MinIO控制台页面访问端口
  • 服务器端口 9000 容器端口 9000 //MinIO服务端S3协议访问端口

环境变量

  • MINIO_ROOT_USER = 登陆MinIO控制台的账号
  • MINIO_ROOT_PASSWORD = 登陆MinIO控制台的密码
  • MINIO_SERVER_URL = MinIO服务端公网地址 //示例 http://PublicIP:9000 http://Domain:9000
  • MinIO 环境变量详见 https://docs.min.io/minio/baremetal/reference/minio-server/minio-server.html?#id5

持久化存储-挂载存储卷

  • 服务器目录 /data 容器目录 /data

3.1.5 运行容器

3.1.5.1 待容器创建完成后自动会转为运行中

容器运行中

3.1.5.2 在浏览器中输入 轻量应用云服务器的公网IP地址并访问 MinIO控制台

  • MinIO控制台登陆页面
MinIO控制台登陆页面

3.1.5.3 创建存储桶并且上传、下载文件

  • 创建存储桶
创建存储桶
  • 填写存储桶名
填写存储桶名
  • 创建完成
创建完成
  • 上传文件
上传文件
  • 下载文件
下载文件

3.2 在Docker环境中单点多容器运行minIO服务端

3.2.1 在轻量应用服务器界面找到刚才购买的实例

轻量应用服务器界面

3.2.2 点击重装系统

重装系统

3.2.3 选择官方镜像-Docker基础镜像-CentOS8.2-Docker20

3.2.4 使用Xshell登陆轻量应用服务器并部署应用

3.2.4.1 使用Wget或者Curl下载预先配置好的docker-compose.ymalnginx.conf文件

wget https://minio-10067252.cos.ap-guangzhou.myqcloud.com/docker-compose/docker-compose.ymal
wget https://minio-10067252.cos.ap-guangzhou.myqcloud.com/docker-compose/nginx.conf

3.2.4.2 修改docker-compose.yaml文件中的环境变量配置

MINIO_ROOT_USER: 登陆MinIO控制台的账号
MINIO_ROOT_PASSWORD: 登陆MinIO控制台的密码
MINIO_SERVER_URL: MinIO服务端公网地址 //示例 http://PublicIP:9000 http://Domain:9000

3.2.4.3 使用docker-compose进行编排和启动容器

sudo docker-compose pull
sudo docker-compose up
下载容器镜像

3.2.4.4 在浏览器中输入 轻量应用云服务器的公网IP地址并访问 MinIO控制台

  • MinIO控制台登陆页面
MinIO控制台登陆页面

3.2.4.5 创建存储桶并且上传、下载文件

  • 创建存储桶
创建存储桶
  • 填写存储桶名并且开启多版本特性
开启多版本特性
  • 创建完成
存储桶创建完成
  • 上传两次同一个文件验证多版本生效状态
验证多版本

3.3 在Linux环境中直接运行minIO服务端

3.3.1 在轻量应用服务器界面找到刚才购买的实例

轻量应用服务器界面

3.3.2 点击重装系统

重装系统

3.3.3 选择官方镜像-系统镜像-CentOS8.2

官方镜像-系统镜像-CentOS8.2

3.3.4 使用Xshell登陆轻量应用服务器并部署服务

3.3.4.1 使用Wget或者Curl下载MinIO服务端文件

  • MinIO 服务端 Url: https://dl.min.io/server/minio/release/linux-amd64/minio
  • 兼容腾讯云COS的 MinIO 服务端 https://cloud.tencent.com/developer/article/1982033
  • 下载命令示例
wget https://dl.min.io/server/minio/release/darwin-amd64/minio

3.3.4.2 运行MinIO服务端

  • 设置环境变量
export MINIO_ROOT_USER=登陆MinIO控制台的账号
export MINIO_ROOT_PASSWORD=登陆MinIO控制台的密码
export MINIO_SERVER_URL=MinIO服务端公网地址 //示例 http://PublicIP:9000 http://Domain:9000

* MinIO 环境变量详见 https://docs.min.io/minio/baremetal/reference/minio-server/minio-server.html?#id5
  • 赋予MinIO服务端文件的执行权限
chmod +x minio
  • 启动MinIO服务端并且将/data 作为数据存储的挂载点
./minio server /data --console-address ":80"
启动MinIO服务端
  • 如果是使用兼容腾讯云COS的 MinIO 服务端,可能会提示升级版本,请勿直接执行升级。如确实有升级需要,可以参考教程中的方案,自行修改代码并编译。

3.3.5.2 在浏览器中输入 轻量应用云服务器的公网IP地址并访问 MinIO控制台

  • MinIO控制台登陆页面
MinIO控制台登陆页面

3.3.5.3 创建存储桶并且上传、下载文件

  • 创建存储桶
创建存储桶
  • 填写存储桶名
填写存储桶名
  • 创建完成
创建完成
  • 上传文件
上传文件
  • 下载文件
下载文件

4. 搭建 MinIO 存储网关

4.1 在Docker环境中单点单容器运行minIO存储网关

4.1.1 在轻量应用服务器界面找到刚才购买的实例

轻量应用服务器界面

4.1.2 点击重装系统

重装系统

4.1.3 选择官方镜像-Docker基础镜像-CentOS8.2-Docker20

官方镜像-Docker基础镜像-CentOS8.2-Docker20

4.1.4 新建容器

新建容器
容器配置

4.1.4.1 容器基础配置

  • 容器名称:MinIO-GateWay
  • Docker镜像:ccr.ccs.tencentyun.com/minio/minio-for-cos
  • 版本Tag:latest
  • 启动命令:gateway s3 https://cos.ap-guangzhou.myqcloud.com --console-address ":80" //此处请按照实际COS存储桶地域填写,例如广州地域为ap-guangzhou

4.1.4.2 容器高级配置

端口配置

  • 服务器端口 80 容器端口 80 //MinIO控制台页面访问端口
  • 服务器端口 9000 容器端口 9000 //MinIO服务端S3协议访问端口

环境变量

  • MINIO_ROOT_USER = 登陆MinIO控制台的账号 //腾讯云SecretID
  • MINIO_ROOT_PASSWORD = 登陆MinIO控制台的密码 //腾讯云SecretKey
  • MINIO_SERVER_URL = MinIO服务端公网地址 //示例 http://PublicIP:9000 http://Domain:9000
  • MINIO_CACHE_DRIVES = /mnt //缓存数据挂载点
  • MINIO_CACHE_QUOTA = 80 //磁盘空间中的缓存空间总占比限制
  • MINIO_CACHE_AFTER = 3 //当文件请求3次后缓存到本地,不再向腾讯云COS拉取数据
  • MINIO_CACHE_WATERMARK_LOW = 70 //缓存空间低水位线
  • MINIO_CACHE_WATERMARK_HIGH = 90 //缓存空间高水位线
  • MinIO 环境变量详见 https://docs.min.io/minio/baremetal/reference/minio-server/minio-server.html?#id5
  • MinIO 存储网关缓存规则详见 https://docs.min.io/docs/minio-disk-cache-guide.html

持久化存储-挂载存储卷

  • 服务器目录 /mnt 容器目录 /mnt

4.1.5 运行容器

4.1.5.1 待容器创建完成后自动会转为运行中

容器运行中

4.1.5.2 在浏览器中输入 轻量应用云服务器的公网IP地址并访问 MinIO控制台

  • MinIO控制台登陆页面
  • 输入刚才创建容器时填写的 腾讯云SecretID作为账号, 腾讯云SecretKey作为密码,登陆MinIO控制台
MinIO控制台登陆页面

4.1.5.3 借助MinIO存储网关进行上传下载腾讯云COS中的数据

  • 上传文件到腾讯云COS存储桶
上传文件到腾讯云COS存储桶
  • 前往腾讯云COS控制台查看文件
腾讯云COS控制台
  • 下载文件
下载文件

4.2 在Linux环境中直接运行minIO存储网关

4.2.1 在轻量应用服务器界面找到刚才购买的实例

轻量应用服务器界面

4.2.2 点击重装系统

重装系统

4.2.3 选择官方镜像-系统镜像-CentOS8.2

官方镜像-系统镜像-CentOS8.2

4.2.4 使用Xshell登陆轻量应用服务器并部署服务

4.2.4.1 使用Wget或者Curl下载MinIO服务端文件

  • MinIO 服务端 Url: https://dl.min.io/server/minio/release/linux-amd64/minio
  • 兼容腾讯云COS的 MinIO 服务端 https://cloud.tencent.com/developer/article/1982033
  • 下载命令示例
wget https://dl.min.io/server/minio/release/darwin-amd64/minio

4.2.4.2 运行MinIO存储网关

  • 设置环境变量
export MINIO_ROOT_USER = 登陆MinIO控制台的账号 //腾讯云SecretID
export MINIO_ROOT_PASSWORD = 登陆MinIO控制台的密码 //腾讯云SecretKey
export MINIO_SERVER_URL = MinIO服务端公网地址 //示例 http://PublicIP:9000 http://Domain:9000
export MINIO_CACHE_DRIVES = "/mnt" //缓存数据挂载点
export MINIO_CACHE_QUOTA = 80 //磁盘空间中的缓存空间总占比限制
export MINIO_CACHE_AFTER = 3  //当文件请求3次后缓存到本地,不再向腾讯云COS拉取数据
export MINIO_CACHE_WATERMARK_LOW = 70 //缓存空间低水位线
export MINIO_CACHE_WATERMARK_HIGH = 90 //缓存空间高水位线

* MinIO 环境变量详见 https://docs.min.io/minio/baremetal/reference/minio-server/minio-server.html?#id5
* MinIO 存储网关缓存规则详见 https://docs.min.io/docs/minio-disk-cache-guide.html
  • 赋予MinIO服务端文件的执行权限
chmod +x minio
  • 启动MinIO存储网关并且将/data 作为数据存储的挂载点
./minio gateway s3 https://cos.ap-guangzhou.myqcloud.com --console-address ":80"  //此处请按照实际COS存储桶地域填写,例如广州地域为ap-guangzhou
启动MinIO存储网关
  • 如果是使用兼容腾讯云COS的 MinIO 服务端,可能会提示升级版本,请勿直接执行升级。如确实有升级需要,可以参考教程中的方案,自行修改代码并编译。

4.2.5.2 在浏览器中输入 轻量应用云服务器的公网IP地址并访问 MinIO控制台

  • MinIO控制台登陆页面
  • 输入刚才启动MinIO存储网关时填写的 腾讯云SecretID作为账号, 腾讯云SecretKey作为密码,登陆MinIO控制台
MinIO控制台登陆页面

4.2.5.3 借助MinIO存储网关进行上传下载腾讯云COS中的数据

  • 上传文件到腾讯云COS存储桶
上传文件到腾讯云COS存储桶
  • 前往腾讯云COS控制台查看文件
腾讯云COS控制台
  • 下载文件
下载文件

5. 参考资料

  • 腾讯云轻量应用服务器
  • 腾讯云对象存储
  • MinIO云原生对象存储
  • 使用 MinIO Gateway、MinIO Client 适配腾讯云COS