Linux : 安装MinIO集群+Nginx高可用/负载均衡+MC工具配置账户权限
摆渡了一圈, 大部分教程有些地方写得不太明白, 我这边记录一下
1. 安装集群
下载MinIO: https://dl.min.io/server/minio/release/linux-amd64/minio
增加可执行权限
配置环境变量:
export MINIO_ROOT_USER=<ACCESS_KEY>
export MINIO_ROOT_PASSWORD=<SECRET_KEY>
启动节点, 如果是本机启动多个节点, 必须要修改端口参数, 日志文件名称, 至于挂载磁盘的目录则指定在集群参数里, 下面这个集群则启动了两个节点, 指定了 /data/minio-node-1 ... 4 这4个目录, 每个节点各有两个目录
具体多硬盘的写法可以参考: https://docs.min.io/cn/distributed-minio-quickstart-guide.html
nohup ./minio server http://192.168.1.48:9001/data/minio-node-1 http://192.168.1.48:9001/data/minio-node-2 http://192.168.1.49:9001/data/minio-node-3 http://192.168.1.49:9001/data/minio-node-4 --address=0.0.0.0:9001 >>node-1.log 2>&1 &
nohup ./minio server http://192.168.1.48:9001/data/minio-node-1 http://192.168.1.48:9001/data/minio-node-2 http://192.168.1.49:9001/data/minio-node-3 http://192.168.1.49:9001/data/minio-node-4 --address=0.0.0.0:9001 >>node-2.log 2>&1 &
这样集群就启动完成了~
2. Nginx配置
话不多说直接上配置文件:
upstream minio { server 192.168.1.48:9001; server 192.168.1.49:9001; } server { listen 9000; #listen [::]:9000; #server_name localhost; # To allow special characters in headers ignore_invalid_headers off; # Allow any size file to be uploaded. # Set to a value such as 1000m; to restrict file size to a specific value client_max_body_size 0; # To disable buffering proxy_buffering off; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_connect_timeout 300; # Default is HTTP/1, keepalive is only enabled in HTTP/1.1 proxy_http_version 1.1; proxy_set_header Connection ""; chunked_transfer_encoding off; proxy_pass http://minio; } }
重新加载nginx就ok了~
3. MC工具配置账户(废弃)
参考博客链接: https://blog.csdn.net/u013595395/article/details/107829555
0. 配置MinIO集群连接地址:
mc config host add minio http://127.0.0.1:9000 username password
1. 新建用户
mc admin user add minio/ node-test node-test-123 // 密码至少8个字符
2. 新建策略文件(注意把 //及后面的注释删掉)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ // 可以做出的行动(权限) "s3:ListAllMyBuckets", // 查看所有的“桶”列表 "s3:ListBucket", // 查看桶内的对象列表 "s3:GetBucketLocation", "s3:GetObject", // 下载对象 "s3:PutObject", // 上传对象 "s3:DeleteObject" // 删除对象 ], "Resource": [ "arn:aws:s3:::*" // (应用到的资源,*表示所有,也可以用路径来控制范围。arn:aws:s3是命名空间) ] } ] }
3. 导入策略
mc admin policy add minio/ node-test ./policy/node-test.json // add后面三个东西,分别是minio服务器别名、策略名、策略所在路径
4. 应用策略
mc admin policy set minio/ node-test user=node-test // 倒数第二个是策略名, 最后是用户名
2021-12-21更新: web控制台支持RBAC控制权限了, mc工具可以不用了~ 撒花~