首页 > 系统相关 >minio集群的部署【nginx+minio]

minio集群的部署【nginx+minio]

时间:2023-12-02 20:32:55浏览次数:38  
标签:minio -- 0.0 server nginx 集群 proxy data

1、 配置MinIO集群

配置本地解析在/etc/hosts中配置

vim /etc/hosts

#添加以下内容,每台MinIO节点都需要配置

192.168.5.1 minio-1

192.168.5.2 minio-2

192.168.5.3 minio-3

192.168.5.4 minio-4


在4台服务器上创建MinIO存储文件夹

mkdir -p /data/minio

chmod 750 /data/minio


2、 创建启动MinIO容器

以下命令,分别在对应节点进行创建容器,请将命令中IP替换为自己服务器IP

# minio-1(192.168.5.1)

docker run -d --name minio-1 --restart=always --net=host \

-e "MINIO_ROOT_USER=admin" \

-e "MINIO_ROOT_PASSWORD=c8YvVVBW2&!T" \

-v /data/minio:/data \

minio/minio:latest server \

--address 0.0.0.0:9000 \

--console-address '0.0.0.0:9999'  http://minio-{1...4}/data


# minio-2(192.168.5.2)

docker run -d --name minio-2 --restart=always --net=host \

-e "MINIO_ROOT_USER=admin" \

-e "MINIO_ROOT_PASSWORD=c8YvVVBW2&!T" \

-v /data/minio:/data \

minio/minio:latest server \

--address 0.0.0.0:9000 \

--console-address '0.0.0.0:9999'  http://minio-{1...4}/data


#minio-3(192.168.5.3)

docker run -d --name minio-3 --restart=always --net=host \

-e "MINIO_ROOT_USER=admin" \

-e "MINIO_ROOT_PASSWORD=c8YvVVBW2&!T" \

-v /data/minio:/data \

minio/minio:latest server \

--address 0.0.0.0:9000 \

--console-address '0.0.0.0:9999'  http://minio-{1...4}/data


#minio-4(192.168.5.4)

docker run -d --name minio-4 --restart=always --net=host \

-e "MINIO_ROOT_USER=admin" \

-e "MINIO_ROOT_PASSWORD=c8YvVVBW2&!T" \

-v /data/minio:/data \

minio/minio:latest server \

--address 0.0.0.0:9000 \

--console-address '0.0.0.0:9999'  http://minio-{1...4}/data


第一台容器启动后

Docker logs 容器ID


代表容器启动正常

所有四台容器都启动后

docker logs 容器ID,出现以下内容代表集群正常



容器启动成功后登录web界面测试是否正常登录

3、 配置nginx转发(或使用LB)

Nginx也采用Docker进行部署,节点IP为192.168.5.5(替换为自己IP)

创建nginx文件夹

mkdir -p /data/nginx


创建nginx配置文件

touch /data/nginx/nginx.conf


nginx.conf完整配置

worker_processes auto;


events {

    worker_connections 1024;

}


http {

    include mime.types;


    default_type application/octet-stream;


    sendfile on;


    keepalive_timeout 65;


#Minio代理,设置文件上传上限

    client_max_body_size 1000m;


#Minio 服务负载均衡

    upstream minio-server {

        server  192.168.5.1:9000 weight=25 max_fails=2 fail_timeout=30s;

        server  192.168.5.2:9000 weight=25 max_fails=2 fail_timeout=30s;

        server  192.168.5.3:9000 weight=25 max_fails=2 fail_timeout=30s;

        server  192.168.5.4:9000 weight=25 max_fails=2 fail_timeout=30s;

    }



#控制台负载均衡

    upstream minio-console {

        server  192.168.5.1:9999 weight=25 max_fails=2 fail_timeout=30s;

        server  192.168.5.2:9999 weight=25 max_fails=2 fail_timeout=30s;

        server  192.168.5.3:9999 weight=25 max_fails=2 fail_timeout=30s;

        server  192.168.5.4:9999 weight=25 max_fails=2 fail_timeout=30s;

    }


#Minio服务

    server {  

        listen       9030;

        server_name  minio-server;


# 允许在标头中使用特殊字符

        ignore_invalid_headers off;

# 允许任何大小的文件上传。

# 设置为1000m等值;将文件大小限制为特定值

        client_max_body_size 1000m;

# 禁用缓冲

        proxy_buffering off;


        location / {  

            root   html;

            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 Host $http_host;


            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-server;

        }

    }


#Minio控制台

    server {  

        listen       9040;

        server_name  minio-console;


# 允许在标头中使用特殊字符

        ignore_invalid_headers off;

# 允许任何大小的文件上传。

# 设置为1000m等值;将文件大小限制为特定值

        client_max_body_size 1000m;

# 禁用缓冲

        proxy_buffering off;


        location / {  

            root   html;

            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 Host $http_host;


            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-console;

        }

    }

}


4、 构建Nginx镜像

创建dockerfile

touch /data/nginx/dockerfile


dockerfile完整配置

#设置容器基础镜像

FROM nginx

#换掉原有的nginx.conf

COPY nginx.conf /etc/nginx/nginx.conf

#输出完成

RUN echo 'build image ok!'


上传nginx镜像,nginx.tar

将镜像上传后载入镜像

docker load -i nginx.tar

构建镜像

cd /data/nginx/

#注意最后有个点

#注意最后有个点

#注意最后有个点

docker build -t minio-balance:1.0 .


创建容器

docker run -p 9030:9030 -p 9040:9040 \

--restart=always --name minio-balance -d minio-balance:1.0


访问nginx服务器地址(或者负载均衡地址)http://192.168.5.5:9040可查看MinIO看板,证明nginx启动成功



5、 验证MinIO集群状态

minio集群的部署【nginx+minio]_nginx

6、测试文件上传与下载

登录任意节点,创建桶test

minio集群的部署【nginx+minio]_IP_02

minio集群的部署【nginx+minio]_IP_03

上传文件

minio集群的部署【nginx+minio]_nginx_04

选择上传的文件,上传成功。

minio集群的部署【nginx+minio]_docker_05

去其他节点验证文件是否存在,并可下载。



7、 验证高可用

将其中任意一台节点上的MinIO容器关闭,

minio集群的部署【nginx+minio]_docker_06

登录负载均衡地址,查看集群状态,并上传下载文件。

minio集群的部署【nginx+minio]_IP_07

文件上传下载测试成功后,启动关停的容器恢复集群。

附录

docker run -d --name minio-1 --restart=always --net=host -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=c8YvVVBW2&o" -v /data/minio:/data minio/minio:latest server --address 0.0.0.0:19000  --console-address '0.0.0.0:19999'  http://minio-{1...4}/data


docker run -d --name minio-2 --restart=always --net=host -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=c8YvVVBW2&o" -v /data/minio:/data minio/minio:latest server --address 0.0.0.0:19000  --console-address '0.0.0.0:19999'  http://minio-{1...4}/data



docker run -d --name minio-3 --restart=always --net=host -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=c8YvVVBW2&o" -v /data/minio:/data minio/minio:latest server --address 0.0.0.0:19000  --console-address '0.0.0.0:19999'  http://minio-{1...4}/data


docker run -d --name minio-4 --restart=always --net=host -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=c8YvVVBW2&o" -v /data/minio:/data minio/minio:latest server --address 0.0.0.0:19000  --console-address '0.0.0.0:19999'  http://minio-{1...4}/data



标签:minio,--,0.0,server,nginx,集群,proxy,data
From: https://blog.51cto.com/u_14529165/8658700

相关文章

  • nginx 的安全策略问题
    1:前端嵌入iframe时,有时汇报安全策略如下:inaframebecauseanancestorviolatesthefollowingContentSecurityPolicydirective:"frame-ancestors‘self’。这里主要是frame-ancestors的参数需要调整。#不允许被嵌入,包括<frame>,<iframe>,<object>,<embed>和<appl......
  • 使用极限网关助力 ES 集群无缝升级、迁移上/下云
    在工作中大家可能会遇到以下这些场景:自建ES集群需要平滑迁移到XX云;从XX云将ES集群迁移到自建机房;ES集群进行跨版本升级,同时保留回退能力;这些场景往往都还有个共同的需求:迁移过程要保证业务的最小停机时间。幸运的是,在这三个场景中,我们都能使用极限网关来帮助我们......
  • 使用AMH面板NGINX 1.20 修改 mime.types 无法下载APK,如何解决?
    如果您修改了AMH面板的NGINX的mime.types文件后无法下载APK文件,可能是由于mime.types文件的配置不正确导致的。以下是一些解决方法:检查mime.types文件的语法:确认您在修改mime.types文件时没有犯语法错误,确保每个文件类型及其对应的MIME类型都是正确的。检查APK文件类型的配置:查找mi......
  • INFINI Labs 产品更新 | 修复 Easysearch 跨集群复制索引同步问题,Gateway 内存异常增
    INFINILabs产品又更新啦~,本次更新主要对Easysearch、Gateway、Console、Agent等产品功能进行优化和相关Bug修复,解决了内存异常增长等问题,以下是详细说明。INFINIEasysearchv1.6.2INFINIEasysearch是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的ApacheLucene......
  • C++聊天集群服务器5
    一、服务器异常处理函数​ 这部分主要处理服务器异常退出时,用户的在线状态还是online不会改变,因此需要修改。由于是需要对用户进行操作,因此我们在user表的数据操作类添加重置用户状态函数。​ 在usermodel.hpp添加后:#ifndefUSERMODEL_#defineUSERMODEL_#include"user.hpp......
  • k8s集群部署nginx服务以及外网访问nginx服务
    1、查看k8s进群状态[root@k8s-mastertest]#kubectlgetnodeNAMESTATUSROLESAGEVERSIONk8s-masterReadymaster16dv1.15.1k8s-node1Ready<none>16dv1.15.12、编写nginx服务yaml文件kind:NamespaceapiVersion:v1metad......
  • Windows下Nginx的重用命令及如何配置后台启动
    Windows下Nginx的常用命令在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动、停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍。1、启动注意:使用后台启动必须配置daemonon;startnginx【后台启动】nginx.exe【临时启动】2、停止nginx.exe-sstop或......
  • hadoop高可用集群集成hive
    hive和hadoop的关系从上图可以看出实际上外界是通过thriftserver这个节点和hadoop的hdfs以及rm进行交互的,中间为driver因此当我修改完hadoop集群为高可用的时候,hive也需要重新配置环境以下是我hive的全新配置<configuration><!--Hive元数据存储配置--><propert......
  • 原生项目在nginx下如何启动
    原生项目在nginx下如何启动原生项目目录打开html页面,页面路径为调接口接口请求地址为这是不对的。正确的应该是,参考nginx配置,把路径修改file:///E:/sso/html-gov-js/html/index.html变成https://localhost/index.html就可以了。......
  • 【Nginx38】Nginx学习:SSL模块(二)错误状态码、变量及宝塔配置分析
    Nginx学习:SSL模块(二)错误状态码、变量及宝塔配置分析继续我们的SSL模块的学习。上回其实我们已经搭建起了一个HTTPS服务器了,只用了三个配置,其中一个是listen的参数,另外两个是指定密钥文件的地址,一个是crt文件,一个是key文件。今天我们将学习到的是SSL中的错误状态码、变......