Minio集群搭建

一、官方文件
1、minio官网

https://min.io/

2、中文文档

http://docs.minio.org.cn/docs/

3、集群原理
Minio集群搭建_第1张图片
二、集群部署
1、在每台服务器上创建minio目录

mkdir -p /app/minio/{run,data1,data2} && mkdir -p /etc/minio

2、下载或者上传下载好的minio二进制文件

https://dl.min.io/server/minio/release/linux-amd64/minio

3、集群启动文件配置
Minio集群搭建_第2张图片

vim /app/minio/run/minio-run.sh

集群节点 172.16.9.26 [注意address配置需要和部署机器的IP一致,否则无法启动]内容为:

#!/bin/bash
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=admin123
/app/minio/run/minio server --config-dir /etc/minio \
--address "172.***.***.26:23561" \
--console-address "172.***.***.23:23560" \
http://172.***.***.26/app/minio/data1 http://172.***.***.26/app/minio/data2 \
http://172.***.***.23/app/minio/data1 http://172.***.***.23/app/minio/data2 \

集群节点 172.16.9.23 内容为:

#!/bin/bash
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=admin123
/app/minio/run/minio server --config-dir /etc/minio \
--address "172.***.***.23:23561" \
--console-address "172.***.***.23:23560" \
http://172.***.***.26/app/minio/data1 http://172.***.***.26/app/minio/data2 \
http://172.***.***.23/app/minio/data1 http://172.***.***.23/app/minio/data2 \

4、创建Minio.server,将minio加入系统服务

vim /usr/lib/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/

[Service]
WorkingDirectory=/app/minio/run/
ExecStart=/app/minio/run/minio-run.sh

Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

修改配置文件后需要重加载配置

systemctl daemon-reload

5、权限修改

chmod +x /usr/lib/systemd/system/minio.service && chmod +x /app/minio/run/minio && chmod +x /app/minio/run/minio-run.sh

6、启动集群

systemctl start minio
systemctl enable minio

查看集群状态

systemctl status minio.service -l

Minio集群搭建_第3张图片

关闭服务

systemctl stop minio

三、Nginx反向代理与负载均衡

upstream minio_api {
	least_conn;
    server 172.*.*.23:23561 max_fails=3 fail_timeout=5s;
    server 172.*.*.26:23561 max_fails=3 fail_timeout=5s;
}

upstream minio_console {
	least_conn;
    server 172.*.*.23:23560 max_fails=3 fail_timeout=5s;
    server 172.*.*.26:23560 max_fails=3 fail_timeout=5s;
}

server {
    listen          9001;
    server_name     minio_console;
    access_log      /app/zhoujun/minio/logs/minio.com_access.log;
    error_log       /app/zhoujun/minio/logs/minio.com_error.log;
   
    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_set_header X-NginX-Proxy true;
        
		# This is necessary to pass the correct IP to be hashed
		real_ip_header X-Real-IP;
		
		proxy_connect_timeout 300;
		
		# To support websockets in MinIO versions released after January 2023
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "upgrade";
		
		chunked_transfer_encoding off;
	
		# This uses the upstream directive definition to load balance
		proxy_pass	http://minio_console;
    }
}

server {
    listen          9000;
    server_name     minio_api;
    access_log      /app/zhoujun/minio/logs/minio.com_access.log;
    error_log       /app/zhoujun/minio/logs/minio.com_error.log;

    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_api;
    }
}

Minio集群搭建_第4张图片
ps:配置的时候以最新的官网为准

四、集群部署结果
Minio集群搭建_第5张图片

你可能感兴趣的:(java,ci/cd,linux)