docker-安装minio集群

目录

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.访问代理


1.服务器列表

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

2.NTP时间同步

1.服务端 minio_01配置

Minio集群需要各个节点的时间保持同步,故选择NTP作为时间同步服务,这里将 minio1(192.168.1.3)节点作为同步服务端

# 安装ntp
yum install ntp ntpdate –y
# 启动ntp服务
systemctl start ntpd
# 服务端修改配置文件

 docker-安装minio集群_第1张图片

 

# 修改服务端配置文件
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

 docker-安装minio集群_第2张图片

# 重启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

 docker-安装minio集群_第3张图片

2.客户端配置-minio_02、minio_03、minio_04配置

# 安装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

 docker-安装minio集群_第4张图片

# 启动ntp服务
systemctl start ntpd
# 设置开机启动
systemctl enable ntpd

 

 

3.Minio集群

 节点分别为192.168.1.3、192.168.1.9、192.168.1.10、192.168.1.11,以下操作除创建容器外,均可在各个节点同步执行,docker部署集群模式时必须指定-–net=host参数,使用主机网络,采用端口映射无法创建集群

1.在对应的主机执行对应的语句

cat >> /etc/hosts <
# 查看文件内容
cat /etc/hosts

docker-安装minio集群_第5张图片

 

2.创建文件夹

#根据机器资源分配情况,选择合适位置
rm -rf /data/docker/minio/
mkdir -p /data/docker/minio/{update,bakup}

cd /data/docker/minio/ && ls

3.创建容器

# 拉取镜像
docker pull minio/minio:RELEASE.2022-10-24T18-35-07Z

docker-安装minio集群_第6张图片

# 开放端口,我的执行过了会有警告
firewall-cmd --permanent --zone=public --add-port=9000/tcp
firewall-cmd --permanent --zone=public --add-port=9001/tcp
firewall-cmd --reload

 docker-安装minio集群_第7张图片

 

# 创建容器命令,在各个服务器上运行
# 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}

docker-安装minio集群_第8张图片

 

4.访问

登录任意一个节点的192.168.1.3:9001进行看板访问
账号admin密码admin@1196869282

docker-安装minio集群_第9张图片

 

5.查看集群

docker-安装minio集群_第10张图片

 

4.nginx代理集群192.168.1.3

1.nginx安装

# 打开防火墙端口
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}

docker-安装minio集群_第11张图片

 

# 编辑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

docker-安装minio集群_第12张图片

 

# 查看nginx运行状态

 

2.访问代理

http://192.168.1.3:19001

docker-安装minio集群_第13张图片

 

你可能感兴趣的:(docker,nginx,运维)