部署前说明
安装前需要再添加一个磁盘后将磁盘挂载到/opt/minio目录,minio集群部署需要独占磁盘分区,不能使用文件夹代替。
最开始直接在/opt/minio目录下面创建data启动时报错,后面挂载一个磁盘后就可以了,报错如图:
运行分布式 MinIO 实例的服务器时间差不应超过15分钟。
所有运行分布式 MinIO 设置的节点都是同构的,即相同的操作系统、相同数量的磁盘和相同的网络互连 。
MinIO 的节点需要具有相同的访问密钥和秘密密钥才能连接,即access key 和 MINIO secret key 都要一样。
1.创建目录
mkdir -p /opt/minio/{run,data} && mkdir -p /etc/minio
cd /opt/minio/run
2.挂载新的硬盘
挂载/opt/minio目录,具体挂载参考 linux 挂载新的硬盘
3.下载Minio到/opt/minio/run
wget https://dl.min.io/server/minio/release/linux-amd64/minio
4.创建启动脚本文件
vim /opt/minio/run/run.sh
#Minio默认9000端口,在配置文件中加入–address “127.0.0.1:9029” 可更改端口
#注意 :
#MINIO_ROOT_USER:用户名,长度最小是5个字符
#MINIO_ROOT_PASSWORD:密码,密码不能设置过于简单,不然minio会启动失败,长度最小是8个字符
#–config-dir:指定集群配置文件目录
#!/bin/bash
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=adminbfd123
/opt/minio/run/minio server --config-dir /etc/minio \
--address "0.0.0.0:9029" --console-address ":9000" \
http://172.16.11.1:9029/opt/minio/data \
http://172.16.11.2:9029/opt/minio/data > minio_server.log
5.创建停止脚本文件
vim /opt/minio/run/stop.sh
#!/bin/bash
#MinIO停止脚本
ps -ef | grep minio | grep -v 'grep' | awk '{print $2}'| xargs kill -9
if $? != 0;then
echo "minio service stop Failed."
exit 1
fi
6.创建Minio.server
vim /etc/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
WorkingDirectory=/opt/minio/run/
ExecStart=/opt/minio/run/run.sh
ExecStop=/opt/minio/run/stop.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
7.权限修改
chmod +x /etc/systemd/system/minio.service && chmod +x /opt/minio/run/minio && chmod +x /opt/minio/run/run.sh && chmod +x /opt/minio/run/stop.sh
8.启动集群
systemctl daemon-reload
systemctl start minio
systemctl enable minio
systemctl status minio.service
9.配置Nginx代理
生产环境一般都需要使用域名做访问,所以选择Nginx。
可以在其中一台部署好Nginx,也可以单独一台做Nginx。
我这里选择在172.16.11.1配置Nginx。
vim minio-cluster.conf
upstream minio_console {
server 172.16.11.1:9000 max_fails=3 fail_timeout=5s;
server 172.16.11.2:9000 max_fails=3 fail_timeout=5s;
}
upstream minio_api {
server 172.16.11.1:9029 max_fails=3 fail_timeout=5s;
server 172.16.11.2:9029 max_fails=3 fail_timeout=5s;
}
server {
listen 80;
server_name cons.minio.com;
location / {
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://minio_console;
expires 0;
}
}
server {
listen 80;
server_name api.minio.com;
location / {
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://minio_api;
expires 0;
}
}
重载Nginx配置,由于这里是使用了测试域名,所以需要本机host文件做一下指向,把两个测试域名指向到172.16.11.1.
10.访问测试
输入账号密码,账号密码在刚才配置的启动文件里面 run.sh。
登录之后,查看集群是否成功。
这里查看到现在是两台服务器,说明集群已经部署完成。