背景:
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
一、官方网站:
MinIO | 用于AI的S3 & Kubernetes原生对象存储 #中文官网
二、搭建方式:
本次还是使用Docker 方式去搭建的,借用1Panel 可视化面板去部署一键部署应用。
1、安装1Panel
1Panel 系统借助 SFTPGo 应用,可以快速创建 SFTP、FTP 和 WebDAV 服务,支持多用户、多目录、多权限。
参考文档:FTP - 1Panel 文档
1Panel 是新一代的 Linux 服务器运维管理面板功能和宝塔有点类似,但是免费开源的。
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh #Centos/redhat版本使用
[root@localhost ~]# curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh
#开始下载 1Panel v1.10.2-lts 版本在线安装包
安装包下载地址: https://resource.fit2cloud.com/1panel/package/stable/v1.10.2-lts/release/1panel-v1.10.2-lts-linux-amd64.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 48.4M 100 48.4M 0 0 16.3M 0 0:00:02 0:00:02 --:--:-- 16.3M
1panel-v1.10.2-lts-linux-amd64/1panel.service
1panel-v1.10.2-lts-linux-amd64/1pctl
1panel-v1.10.2-lts-linux-amd64/LICENSE
1panel-v1.10.2-lts-linux-amd64/README.md
1panel-v1.10.2-lts-linux-amd64/install.sh
1panel-v1.10.2-lts-linux-amd64/1panel
██╗ ██████╗ █████╗ ███╗ ██╗███████╗██╗
███║ ██╔══██╗██╔══██╗████╗ ██║██╔════╝██║
╚██║ ██████╔╝███████║██╔██╗ ██║█████╗ ██║
██║ ██╔═══╝ ██╔══██║██║╚██╗██║██╔══╝ ██║
██║ ██║ ██║ ██║██║ ╚████║███████╗███████╗
╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝╚══════╝
[1Panel Log]: ======================= 开始安装 =======================
设置 1Panel 安装目录(默认为/opt):
[1Panel Log]: 您选择的安装路径为 /opt #设置安装路径
[1Panel Log]: 检测到 Docker 已安装,跳过安装步骤 #检查docker是否安装,如果未安装则先安装docker
[1Panel Log]: 启动 Docker
[1Panel Log]: ... 在线安装 docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 56.8M 100 56.8M 0 0 17.8M 0 0:00:03 0:00:03 --:--:-- 17.8M
[1Panel Log]: docker-compose 安装成功
设置 1Panel 端口(默认为42074): #设置端口
[1Panel Log]: 您设置的端口为:42074
[1Panel Log]: 防火墙未开启,忽略端口开放
设置 1Panel 面板用户(默认为88326053fc): #面板用户名
[1Panel Log]: 您设置的面板用户为:88326053fc
设置 1Panel 面板密码(默认为08e13ab1ca): # 设置面板用户密码
[1Panel Log]: 配置 1Panel Service
Created symlink from /etc/systemd/system/multi-user.target.wants/1panel.service to /etc/systemd/system/1panel.service.
[1Panel Log]: 启动 1Panel 服务
[1Panel Log]: 1Panel 服务启动成功!
[1Panel Log]:
[1Panel Log]: =================感谢您的耐心等待,安装已经完成==================
[1Panel Log]:
[1Panel Log]: 请用浏览器访问面板:
[1Panel Log]: 外网地址: http://122.231.147.239:42074/8a36118354
[1Panel Log]: 内网地址: http://192.168.245.133:42074/8a36118354
[1Panel Log]: 面板用户: 88326053fc
[1Panel Log]: 面板密码: 08e13ab1ca
[1Panel Log]:
[1Panel Log]: 项目官网: https://1panel.cn
[1Panel Log]: 项目文档: https://1panel.cn/docs
[1Panel Log]: 代码仓库: https://github.com/1Panel-dev/1Panel
[1Panel Log]:
[1Panel Log]: 如果使用的是云服务器,请至安全组开放 42074 端口
根据提示登录可视化面板
三、部署MINIIO:
使用1panel 部署MINIIO
点击参数可以查看MINIIO的相关信息,包括登录端口号和账号密码
使用http://IP:9000 进行访问
例如 http://172.30.10.43:9000/buckets/mybucket/admin/access
输入用户和密码进行登录
四、配置MINIIO:
1、流程:
先创建一个资源桶,来存储数据,然后创建一个AK SK 密钥来交给用户进行登录,然后再上传下载资源桶中的数据
2、创建数据桶:
可以在图形化中创建
可以在linux 系统中使用
mc alias set <桶名字> MINIIO访问界面:API端口 SK AK 进行创建桶
例如:
mc alias set mymini2 http://172.30.10.43:9001 rlhR84uCH07RQoqECQEL c6gr6VPqWsOEo8e9d9v8wDuJ5OG7wTySr5DAP0Js
mc mb myminio/mybucket2 #创建一个名字为mybacket2桶
3、创建AK SK密钥:
随机创建一个AK以及SK密钥,下面可以添加一些描述信息比如谁领取该密钥,
创建后下载credentials (1).json 文件,该文件里面记录AK SK 信息,方便存储保存
4、创建用户及用户组:
创建用户
创建用户以及输入密码 <添加对应权限,以及加入对应的组中>
返回点击用户的修改权限
创建该用户相关的AK 以及 SK 密钥
创建用户组
创建用户组并把相关的用户添加到对应的组中,方便后续用户的管理
5、用户及用户组权限:
在创建用户时可以指定相关的权限,用户创建完成后也可以进行修改权限
创建用户组时候可以进一步编辑,设置组的权限。
6、用户桶资源的关联:
在web端,创建完用户之后就自动关联所有的数据桶,
五、使用MINIIO:
1、安装配置MC客户端
1.1 windows
打开以下文件在浏览器中:
https://dl.minio.org.cn/client/mc/release/windows-amd64/mc.exe
通过双击执行文件,或者 在命令 提示符或PowerShell中运行以下内容:
\path\to\mc.exe --help
1.2 linux
64-bit Intel
curl https://dl.minio.org.cn/client/mc/release/linux-amd64/mc \
--create-dirs \
-o $HOME/minio-binaries/mc
chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/
mc --help
64-bit PPC
curl https://dl.minio.org.cn/client/mc/release/linux-ppc64le/mc \
--create-dirs \
-o ~/minio-binaries/mc
chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/
mc --help
ARM64
curl https://dl.minio.org.cn/client/mc/release/linux-arm64/mc \
--create-dirs \
-o ~/minio-binaries/mc
chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/
mc --help
1.3 macOS
brew install minio/stable/mc
mc --help
1.4 Source
从源代码安装旨在为开发者和高级用户提供, 并需要一个工作的Golang环境。 请参阅 如何安装Golang。在终端环境中运行以下命令以从源代码 安装 mc
:
go install github.com/minio/mc@latest
mc update 不支持基于源代码的安装。
2、登录MC客户端
MINIIO server
mc alias set myminio https://minioserver.example.net ACCESS_KEY SECRET_KEY
AWS S3 Storage
mc alias set myS3 https://s3.amazon.com/endpoint ACCESS_KEY SECRET_KEY
Google Cloud Storage
mc alias set myGCS https://storage.googleapis.com/endpoint ACCESS_KEY SECRET_KEY
3、上传数据信息
windows :系统上传需要在web客户端中操作即可。
可上传文件和文件夹
linux:
可以使用以下命令在mc客户端中配置主机:
mc config host add 桶名字 miniio客户端 AK SK
mc config host add myminio http://172.30.10.43:9001 yoZJ8LV5qoOKUriOvDEG BKp6P6fiGfJNjIzt2XyC8xgt53qtRhp1aM5ylRex
mc cp CentOS-7-x86_64-DVD-1708.iso myminio/mybucket/
4、下载数据信息
windows:系统下载需要在web客户端中操作即可
linux :使用复制命令去从资源桶中复制文件到linux 系统中
mc cp myminio/mybucket/1panel-v1.10.5-lts-linux-amd64.tar.gz /data
已经完成miniio初级的使用体验