目录
1.服务器列表
2.NTP时间同步
1.服务端 minio_01配置
2.客户端配置-minio_02、minio_03、minio_04配置
3.Minio集群
1.在对应的主机执行对应的语句
2.创建文件夹
3.创建容器
4.访问
5.查看集群
4.nginx代理集群192.168.1.3
1.nginx安装
2.访问代理
ame | ip | 远程端口 |
---|---|---|
minio_04 | 192.168.1.11 | 22 |
minio_03 | 192.168.1.10 | 22 |
minio_02 | 192.168.1.9 | 22 |
minio_01/nginx | 192.168.1.3 | 22 |
Minio集群需要各个节点的时间保持同步,故选择NTP作为时间同步服务,这里将 minio1(192.168.1.3)节点作为同步服务端
# 安装ntp
yum install ntp ntpdate –y
# 启动ntp服务
systemctl start ntpd
# 服务端修改配置文件
# 修改服务端配置文件
vim /etc/ntp.conf
#注释掉其他上游时间服务器
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
#本机作为服务端
#配置时间服务器为本地的ntpd Server服务器
#以本地时间为主,可以设置其他网络时间,但这里主要是针对无网络情况
server 127.127.1.1
fudge 127.127.1.1 stratum 10
# 重启ntp服务
systemctl restart ntpd
# 查看端口 UDP123
ss -lnu
# 查看ntp状态
ntpq -p
# 设置开机启动
systemctl enable ntpd
# 开放UDP 123端口
firewall-cmd --permanent --zone=public --add-port=123/udp
firewall-cmd --reload
# 安装ntp
yum install ntp ntpdate –y
# 手动同步一次
/usr/sbin/ntpdate -u 192.168.1.3
# 修改配置文件
vi /etc/ntp.conf
#注释掉其他上游时间服务器
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
#配置允许上游时间服务器主动修改本机的时间
restrict 192.168.1.3 nomodify notrap noquery
#配置上游时间服务器为本地的ntpd Server服务器
server 192.168.1.3
fudge 192.168.1.3 stratum 10
# 启动ntp服务
systemctl start ntpd
# 设置开机启动
systemctl enable ntpd
节点分别为192.168.1.3、192.168.1.9、192.168.1.10、192.168.1.11,以下操作除创建容器外,均可在各个节点同步执行,docker部署集群模式时必须指定-–net=host参数,使用主机网络,采用端口映射无法创建集群
cat >> /etc/hosts <
# 查看文件内容
cat /etc/hosts
#根据机器资源分配情况,选择合适位置
rm -rf /data/docker/minio/
mkdir -p /data/docker/minio/{update,bakup}
cd /data/docker/minio/ && ls
# 拉取镜像
docker pull minio/minio:RELEASE.2022-10-24T18-35-07Z
# 开放端口,我的执行过了会有警告
firewall-cmd --permanent --zone=public --add-port=9000/tcp
firewall-cmd --permanent --zone=public --add-port=9001/tcp
firewall-cmd --reload
# 创建容器命令,在各个服务器上运行
# minio-1(192.168.1.3)
docker run -it -d --name minio-01 --restart=always --net=host \
-p 9000:9000 -p 9001:9001 \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=admin@1196869282" \
-v /data/docker/minio/update:/data1 \
-v /data/docker/minio/bakup:/data2 \
-m 300m \
--privileged=true \
minio/minio:RELEASE.2022-10-24T18-35-07Z server \
--address 192.168.1.3:9000 \
--console-address '0.0.0.0:9001' http://minio{1...4}/data{1...2}
# minio-2(192.168.1.9)
docker run -it -d --name minio-02 --restart=always --net=host \
-p 9000:9000 -p 9001:9001 \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=admin@1196869282" \
-v /data/docker/minio/update:/data1 \
-v /data/docker/minio/bakup:/data2 \
-m 300m \
--privileged=true \
minio/minio:RELEASE.2022-10-24T18-35-07Z server \
--address 192.168.1.9:9000 \
--console-address '0.0.0.0:9001' http://minio{1...4}/data{1...2}
#minio-3(192.168.1.10)
docker run -it -d --name minio-03 --restart=always --net=host \
-p 9000:9000 -p 9001:9001 \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=admin@1196869282" \
-v /data/docker/minio/update:/data1 \
-v /data/docker/minio/bakup:/data2 \
-m 300m \
--privileged=true \
minio/minio:RELEASE.2022-10-24T18-35-07Z server \
--address 192.168.1.10:9000 \
--console-address '0.0.0.0:9001' http://minio{1...4}/data{1...2}
#minio-4(192.168.1.11)
docker run -it -d --name minio-04 --restart=always --net=host \
-p 9000:9000 -p 9999:9999 \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=admin@1196869282" \
-v /data/docker/minio/update:/data1 \
-v /data/docker/minio/bakup:/data2 \
-m 300m \
--privileged=true \
minio/minio:RELEASE.2022-10-24T18-35-07Z server \
--address 192.168.1.11:9000 \
--console-address '0.0.0.0:9001' http://minio{1...4}/data{1...2}
登录任意一个节点的192.168.1.3:9001进行看板访问
账号admin密码admin@1196869282
# 打开防火墙端口
firewall-cmd --permanent --zone=public --add-port=19001/tcp
firewall-cmd --permanent --zone=public --add-port=19000/tcp
firewall-cmd --reload
# 创建nginx配置目录
rm -rf /data/docker/nginx/nginx_master/
mkdir -p /data/docker/nginx/nginx_master/{conf,conf.d,logs,html}
# 编辑nginx主配置文件
vi /data/docker/nginx/nginx_master/conf/nginx.conf
user nginx;
# 1.9.10版本后可以配置
# worker_processes auto;
# worker_cpu_affinity auto;
# 相当于
# worker_processes 4;
# worker_cpu_affinity 0001 0010 0100 1000;
worker_processes auto;
worker_cpu_affinity auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
# 设置content-type映射
include /etc/nginx/mime.types;
default_type application/octet-stream;
# 通过nginx内置变量拼接的日志字符串 相当于方法名称为 main
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# 日志存储位置,使用的日至格式方法为main
access_log /var/log/nginx/access.log main;
# 当 nginx 是静态文件服务器时,能极大提高nginx的性能表现
sendfile on;
#tcp_nopush on;
# 超时时间
keepalive_timeout 65;
#gzip on;
# 包含下面 /etc/nginx/conf.d/的.conf结尾的所有文件
include /etc/nginx/conf.d/*.conf;
}
# 配置minio代理配置文件
vi /data/docker/nginx/nginx_master/conf.d/minio.conf
upstream minio_console {
server 192.168.1.3:9001 max_fails=3 fail_timeout=5s;
server 192.168.1.9:9001 max_fails=3 fail_timeout=5s;
server 192.168.1.10:9001 max_fails=3 fail_timeout=5s;
server 192.168.1.11:9001 max_fails=3 fail_timeout=5s;
}
upstream minio_api {
server 192.168.1.3:9000 max_fails=3 fail_timeout=5s;
server 192.168.1.9:9000 max_fails=3 fail_timeout=5s;
server 192.168.1.10:9000 max_fails=3 fail_timeout=5s;
server 192.168.1.11:9000 max_fails=3 fail_timeout=5s;
}
server {
listen 19001;
server_name 192.168.1.3;
access_log /var/log/nginx/access.log main;
ignore_invalid_headers off;
client_max_body_size 0;
location / {
proxy_pass http://minio_console;
expires 0;
proxy_connect_timeout 300;
chunked_transfer_encoding off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 19000;
server_name 192.168.1.3;
access_log /var/log/nginx/access.log main;
ignore_invalid_headers off;
client_max_body_size 0;
location / {
proxy_pass http://minio_api;
expires 0;
proxy_connect_timeout 300;
chunked_transfer_encoding off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# 创建nginx容器,第一次会慢一些
docker run -it -d --name=nginx_master \
-p 19001:19001 -p 19000:19000 \
-v /data/docker/nginx/nginx_master/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/docker/nginx/nginx_master/logs:/var/log/nginx \
-v /data/docker/nginx/nginx_master/conf.d:/etc/nginx/conf.d \
-v /data/docker/nginx/nginx_master/html:/usr/share/nginx/html \
--restart=always -m 300m --net=host \
-e TZ=Asia/Shanghai --privileged=true \
nginx:1.22
# 查看nginx运行状态
http://192.168.1.3:19001