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

minio集群的部署【nginx+minio]

时间:2023-12-26 13:23:33浏览次数:27  
标签:minio -- 0.0 server nginx 集群 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集群状态


6、测试文件上传与下载
登录任意节点,创建桶test

 

 

上传文件

 

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

 

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

 

 

7、 验证高可用
将其中任意一台节点上的MinIO容器关闭,

 

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

 

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

附录

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
-----------------------------------
©著作权归作者所有:来自51CTO博客作者wx5d6da4954a0c0的原创作品,请联系作者获取转载授权,否则将追究法律责任
minio集群的部署【nginx+minio]
https://blog.51cto.com/u_14529165/8658700

标签:minio,--,0.0,server,nginx,集群,data
From: https://www.cnblogs.com/gaoyanbing/p/17927926.html

相关文章

  • nginx代理简单配置
    1./html/web里的config.js可以配置一些参数web是dist,npmrunbuild压缩文件2./conf里nginx.conf配置代理   3/nginx-service.xml配置 4/该目录下cmd创建服务nginx-service.exeinstallnginx-service.exestart  相关命令:nginx-service.exeinstall#安装服务......
  • GlusterFS集群安装
    GlusterFS集群安装GlusterFS参考链接:https://zhuanlan.zhihu.com/p/586419358安装环境准备服务器编号OSIPGFS1CentOS7.9-2009192.168.1.15GFS2CentOS7.9-2009192.168.1.16vip-192.168.1.16实现效果GFS1和GFS2为复制关系,两者数据保持一致。挂载GFS......
  • 如何通过port-forward命令在本地访问 k8s 集群服务
    公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享概述在我们访问k8s中的pod服务时,一般通过nodeport映射pod端口进行访问,还有一种是通过ingress或者istio通过域名方式来访问,虽然两种方式能满足我们需求,但是如果针对临时访问,配置起来还是有点复杂和......
  • docker运行nginx实现TCP代理
    1、安装docker和docker-compose步骤略2、任意目录创建docker-compose.yml文件touchdocker-compose.ymltouchnginx.conf3、修改docker-compose.yml文件version:'3'services:nginx:image:nginxcontainer_name:tcpnginxnetwork_mode:hostvolum......
  • 在Ubuntu下部署nginx——nginx的安装与卸载
    一、什么是nginx?Nginx(发音“engine-x”)是一款高性能的Web服务器和反向代理服务器,也是一款IMAP/POP3/SMTP代理服务器。Nginx的特点是占用内存少、并发能力强,采用了基于事件驱动的异步非阻塞处理方式,转发和代理性能优异,被广泛应用于高并发、分布式系统架构的Web服务器集群中。Ngin......
  • 1、nginx概述
    nginx特点更快:在正常情况下,单次请求会得到更快的响应;在高峰期(如有数以万计的并发请求),Nginx可以比其他Web服务器更快地响应请求。高扩展性:当对某一个模块修复Bug或进行升级时,可以专注于模块自身,无须在意其他。在HTTP模块中,还设计了HTTP过滤器模块:一个正......
  • 教你几个部署多个nginx-ingress的注意事项
    本文分享自华为云社区《nginx-ingress工作原理以及多nginx-ingress部署注意事项》,作者:可以交个朋友。一、nginx-ingress工作原理nginx-ingress对应的容器中有两个核心组件:nginx-ingress-controller和nginx。其中nginx-ingress-controller负责list-watchkube-apiserver监听ingress......
  • 教你几个部署多个nginx-ingress的注意事项
    本文分享自华为云社区《nginx-ingress工作原理以及多nginx-ingress部署注意事项》,作者:可以交个朋友。一、nginx-ingress工作原理nginx-ingress对应的容器中有两个核心组件:nginx-ingress-controller和nginx。其中nginx-ingress-controller负责list-watchkube-apiserver监听ingr......
  • Docker部署Redis7.X版本Cluster模式三主三从集群
    前言:最近给客户部署项目提供三台机器,需要用到redis就想着部署RedisCluster模式集群,但是找遍了csdn都没找到我想要的。花了好久参考了很多博主的帖子终于让我搞出来了,个人比较菜各位看官老爷见笑。话不多说开搞!!!!!!安装前准备:1.在三台机器上分别创建对应配置文件夹,一台机器两个节点(一......
  • Nginx 常用配置汇总
    Nginx 是开源、高性能、高可靠的Web和反向代理服务器,而且支持热部署,同时也提供了IMAP/POP3/SMTP服务,可以不间断运行,提供热更新功能。占用内存少、并发能力强,最重要的是,Nginx 是免费的并可以商业化,配置使用都比较简单。Nginx特点高并发、高性能模块化架构使得它的扩展性非常......