MinIO 集群搭建步骤包括设置 3 个节点,每个节点的 IP 地址如下,并使用 Nginx 作为反向代理。我们将详细分解安装步骤:

环境信息:

  • Node1: 192.168.1.101
  • Node2: 192.168.1.102
  • Node3: 192.168.1.103
  • MinIO 版本: 最新
  • 操作系统: Linux (假设使用 Ubuntu 20.04)
  • Nginx: 用于反向代理,提供负载均衡

1. 前置条件

  • Go语言: MinIO 需要安装 Go 语言,确认你系统中已安装。
  • Docker: 如果你使用 Docker 容器进行部署,请确保安装了 Docker 和 Docker Compose。
  • 网络要求: 各节点之间网络通畅,没有防火墙阻碍通信。

2. MinIO 集群安装步骤

2.1 安装 MinIO Server

首先,在每个节点上安装 MinIO:

# 在所有 3 个节点上运行
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/

2.2 创建数据目录

为每个节点创建存储数据的目录,例如 /mnt/data

# 在每个节点上
sudo mkdir -p /mnt/data/minio

2.3 启动 MinIO 服务

在每个节点启动 MinIO,使用下面的命令:

# 在所有节点上启动 MinIO
minio server http://192.168.1.101/mnt/data/minio \
             http://192.168.1.102/mnt/data/minio \
             http://192.168.1.103/mnt/data/minio

这将在 3 个节点上创建一个集群,使用 HTTP 协议。

2.4 配置 MinIO 环境变量

在每个节点上设置 MinIO 的环境变量:

# 在 /etc/profile 中添加
export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=minioadminpassword

然后运行以下命令让其生效:

source /etc/profile

3. 配置 Nginx 代理

Nginx 将用于平衡 3 个 MinIO 节点的负载。

3.1 安装 Nginx

在任意一台服务器上(或单独的服务器上)安装 Nginx:

sudo apt update
sudo apt install nginx

3.2 配置 Nginx

编辑 Nginx 配置文件 /etc/nginx/sites-available/minio.conf

server {
    listen 80;
    server_name minio.example.com;

    location / {
        proxy_set_header Host $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_pass http://minio_cluster;
    }
}

# 定义 upstream,添加 3 个 MinIO 节点
upstream minio_cluster {
    server 192.168.1.101:9000;
    server 192.168.1.102:9000;
    server 192.168.1.103:9000;
}

3.3 启用配置并重启 Nginx

sudo ln -s /etc/nginx/sites-available/minio.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

4. 验证 MinIO 集群状态

使用以下 URL 访问 MinIO 控制台:

http://minio.example.com

输入用户名和密码(minioadminminioadminpassword)登录并验证集群节点是否正常工作。

5. 后续操作

5.1 配置自动启动

你可以为 MinIO 创建 systemd 服务文件以便服务器启动时自动启动:

sudo nano /etc/systemd/system/minio.service

内容如下:

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target

[Service]
User=root
Group=root
EnvironmentFile=-/etc/default/minio
ExecStart=/usr/local/bin/minio server http://192.168.1.101/mnt/data/minio \
                                     http://192.168.1.102/mnt/data/minio \
                                     http://192.168.1.103/mnt/data/minio
Restart=always
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

然后运行以下命令启用该服务:

sudo systemctl daemon-reload
sudo systemctl enable minio
sudo systemctl start minio

6. 总结

  1. 在 3 个节点上安装 MinIO 并配置集群。
  2. 安装并配置 Nginx 作为反向代理,负载均衡 MinIO 集群节点。
  3. 启动并验证集群是否正常运行。

这样,MinIO 集群将通过 Nginx 代理进行访问,并在 3 个节点上实现高可用。

作者:严锋  创建时间:2024-10-21 10:30
最后编辑:严锋  更新时间:2025-05-09 15:48