搭建高可用MinIO集群_minio高可用集群-程序员宅基地

技术标签: 工作问题总结  java  linux  前端  

配置服务器

cat >> /etc/sysctl.conf <<- 'EOF'
net.ipv4.ip_forward=1
vm.max_map_count=655360
EOF

# 查看配置
sysctl -p

配置docker

在第一台服务器192.168.2.4下运行 

docker run -d --name minio-4 \
--restart=always \
--net=host \
-v /data/n4/export1:/data1 \
-v /data/n4/export2:/data2 \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=mytest123" \
-e MINIO_ACCESS_KEY=minio \
-e MINIO_SECRET_KEY=minio123 \
minio/minio server --address 192.168.2.4:9000 http://192.168.2.{4...6}/export{1...2}
  • -d:将容器设置为在后台模式下运行。
  • --name minio-3:指定容器的名称为minio-3。
  • --restart=always:在容器退出时,总是自动重新启动容器。
  • --network macvlan31:将容器连接到名为macvlan31的Macvlan网络。
  • --ip=192.168.2.3:为容器分配静态IP地址192.168.2.3。
  • -v /data/n3/export1:/export1:将主机的/data/n3/export1目录挂载到容器内的/export1目录,实现主机和容器之间的文件共享。
  • -v /data/n3/export2:/export2:将主机的/data/n3/export2目录挂载到容器内的/export2目录。
  • -e "MINIO_ROOT_USER=admin":通过环境变量设置MinIO的根用户为admin。
  • -e "MINIO_ROOT_PASSWORD=mytest123":通过环境变量设置MinIO的根用户密码为mytest123。
  • minio/minio server http://192.168.2.{3...5}/export{3...5}:启动MinIO服务器,并配置存储目录为http://192.168.2.3/export3http://192.168.2.4/export4http://192.168.2.5/export5

第二台服务器下运行 

docker run -d --name minio-5 \
--restart=always \
--net=host \
-v /data/n5/export1:/data1 \
-v /data/n5/export2:/data2 \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=mytest123" \
-e MINIO_ACCESS_KEY=minio \
-e MINIO_SECRET_KEY=minio123 \
minio/minio server --address 192.168.2.5:9000 http://192.168.2.{4...6}/export{1...2}

第三台服务器下运行

docker run -d --name minio-6 \
--restart=always \
--net=host \
-v /data/n6/export1:/data1 \
-v /data/n6/export2:/data2 \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=mytest123" \
-e MINIO_ACCESS_KEY=minio \
-e MINIO_SECRET_KEY=minio123 \
minio/minio server --address 192.168.2.6:9000 http://192.168.2.{4...6}/export{1...2}

问题出错 

Error: Drive `http://192.168.2.6:9000/export2` is part of root drive, will not be used (*errors.errorString),如果出现上述问题,则需要添加一个新的硬盘。把数据挂载到新硬盘中。

访问

使用192.168.2.4:9000/去访问,Minio三节点集群宕机一个节点时可以正常使用  宕机两个节点时 无法使用。

配置nginx

http {
    # 调大客户端请求体的大小限制,便于MinIO上传大文件
    client_max_body_size 10M;

    # websocket
    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }

     upstream minioapi {
      server 192.168.2.4:9000;
      server 192.168.2.5:9000;
      server 192.168.2.6:9000;
     }

     upstream minioconsole {
      server 192.168.2.4:50000;
      server 192.168.2.5:50000;
      server 192.168.2.6:50000;
     }
     
    server {
       listen     80;
       server_name  console.minio.com api.minio.com;
       access_log  /var/log/nginx/http_access.log  main;
       return 301 https://$host$request_uri;
    }

    server {
       listen       443 ssl http2;
       listen       [::]:443 ssl http2;
       server_name  api.minio.com;

       ssl_certificate "/etc/nginx/ssl_cert/api.minio.com.pem";
       ssl_certificate_key "/etc/nginx/ssl_cert/api.minio.com.key";
       ssl_session_cache shared:SSL:1m;
       ssl_session_timeout  10m;
       ssl_ciphers HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers on;

       access_log  /var/log/nginx/api_minio_com_access.log  main;
       location / {
           proxy_pass http://minioapi/;
           proxy_set_header Host $http_host;
           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_http_version 1.1;
        }
    }

    server {
       listen       443 ssl http2;
       listen       [::]:443 ssl http2;
       server_name  console.minio.com;

       ssl_certificate "/etc/nginx/ssl_cert/console.minio.com.pem";
       ssl_certificate_key "/etc/nginx/ssl_cert/console.minio.com.key";
       ssl_session_cache shared:SSL:1m;
       ssl_session_timeout  10m;
       ssl_ciphers HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers on;

       access_log  /var/log/nginx/console_minio_com_access.log  main;
       location / {
           proxy_pass http://minioconsole/;
           proxy_set_header Host $http_host;
           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_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection $connection_upgrade;
        }
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_63431773/article/details/134113680

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签