搭建高可用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

智能推荐

将Ajax请求返回的json数据,转换成json对象-程序员宅基地

文章浏览阅读1.1w次。var json = eval("("+data+")");//将json类型字符串转换为json对象注:https://www.cnblogs.com/yuxiaona/p/5853732.html

线性空间(也叫向量空间)、线性运算_线性空间定义-程序员宅基地

文章浏览阅读793次,点赞7次,收藏9次。线性空间(也叫向量空间)、线性运算_线性空间定义

pychram中更换pip源_pycharm更换pip源-程序员宅基地

文章浏览阅读1.1k次。2、pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/ #修改配置文件。原本的pip源一般为国外源,在下载第三方库的速度很慢,更改pip源可以快速提高下载速度。清华大学:https://pypi.tuna.tsinghua.edu.cn/simple。阿里云:http://mirrors.aliyun.com/pypi/simple。豆瓣:http://pypi.douban.com/simple。_pycharm更换pip源

vue项目中(vue-cli3)代理配置不成功 及 axios的 baseUrl 设置无效问题_axios加上baseurl反向代理就不生效-程序员宅基地

文章浏览阅读1.3w次,点赞9次,收藏35次。最近开发项目时配置代理过程中遇到一个非常低级的错误,导致配置完代理后,项目运行请求接口一直是404;并同时因为这个低级错误,自己对前端vue项目的代理配置又混乱,直至发现问题后才对代理配置清晰明了起来。本文简单记录问题解决方式及自己对vue项目中的代理配置一点小理解,避免日后再次踩坑。vue项目中涉及的文件简单描述:1、该项目的后台的服务地址为:http://10.10.10.10/aa2、现在请求一个后台的验证码接口为: /code/img3、vue项目中环境配置(.env.developme._axios加上baseurl反向代理就不生效

mybatis报错:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exception-程序员宅基地

文章浏览阅读1.1w次。今日Mybatis执行一个 select 命令时出现错误,mybatis报错:targetException:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:### Error querying databas..._mybatissystemexception: nested exception is org.apache.ibatis.exceptions.per

python程序员入职第一天_看不懂代码,不会用框架,新手程序员入职后如何快速上手项目?...-程序员宅基地

文章浏览阅读949次,点赞2次,收藏3次。大家好,我是良许。对于职场新人,特别是应届毕业生,他们拿到offer之后,进入公司后会有一段时间的焦虑感。比如说,不懂公司项目开发流程,代码看不懂,业务流程也不知道,框架不会用,等等还有各种各样的问题。所以很多人一开始都会在担心自己能不能胜任这个职位,会不会连试用期都过不了。其实这个心态是很常见的,每个程序员应该都会经历这么一个过程。就拿我自己来说吧,由于我是自学转行的,我的技术本身就比那些科班出..._进入公司不会写python怎么办

随便推点

CSS Material+Icons 本地下载使用 国内解决方案_material icons 无法访问-程序员宅基地

文章浏览阅读1.7k次。前端使用<link href="https://fonts.googleapis.com/css2?family=Material+Icons" rel="stylesheet">由于访问fonts.googleapis.com不稳定,所以经常出现图标访问不到_material icons 无法访问

java中使用mysql查询 条件中含有中文时查询不到结果_Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办...-程序员宅基地

文章浏览阅读647次。项目开发中,在做mybatis动态查询时,遇到了一个问题:mysql在进行like模糊查询时,输入英文可以正常检索出结果,但是输入中文后检索得到的结果为空。由于是使用get方式请求,所以为了确保中文不乱码,在控制台接收到请求参数后,对中文进行了一次编码。try {realname = new string(realname.getbytes("gbk"), "utf-8");} catch (un..._通过java查询mysql 模糊查询中文失效

MFC中线程间通信--主线程与子线程间的通信_mfc中主进程和子线程共享数据-程序员宅基地

文章浏览阅读1.8k次。第0步:声明一个线程、一个事件CWinThread* m_hThread; //接收线程的句柄HANDLE hStartEven; //第一步:定义自己的消息#define MY_MESSAGE WM_USER+100第二步:在发送消息的线程中//得到需要传输的数据 CString str; GetDlgItemText..._mfc中主进程和子线程共享数据

2020年第二届“网鼎杯”网络安全大赛 白虎组 部分题目Writeup_网鼎杯网络安全大赛比赛题目-程序员宅基地

文章浏览阅读7.7k次,点赞3次,收藏12次。2020年第二届“网鼎杯”网络安全大赛 白虎组 部分题目Writeup2020年网鼎杯白虎组赛题.zip下载https://download.csdn.net/download/jameswhite2417/124212670x00 签到操作内容:完成游戏,通过第7关,让提交队伍token值提交后获得flag通过qq截图,文字识别FLAG值:flag{f6e5************************3112}0x01 hidden操作内容:.._网鼎杯网络安全大赛比赛题目

使用Sonatype Nexus Repository Manager上传jar包_sonatype sonatype nexus repository manager 上传jar-程序员宅基地

文章浏览阅读2.1w次,点赞4次,收藏7次。使用Sonatype Nexus Repository ManagerOSS 3.14.0-04 上传jar包1、登录后台2、单击Browse server contents图标,打开预览页面,如下图所示:3、单击Browse菜单,选择组件库,打开上传组件页面,如下图所示:4、单击Upload按钮,打开上传页面,上传jar包,并填写相关信息,如下图所示:5、单击Up..._sonatype sonatype nexus repository manager 上传jar

6位数密码C++破解程序,并附上时间_6位数字密码攻破-程序员宅基地

文章浏览阅读1.2w次,点赞5次,收藏14次。今天在看hash函数对于数字或字符进行加密的知识,有感而发就写了一个C++破解6位数数字密码的程序,程序很简单,也很容易理解,并给也给出了对于不同密码所需要破解的时间。好了,废话不多少,直接贴程序:#include #includeusing namespace std;int main(){ int a,b,c,d,e,f,i=0; int password[6]; cout<_6位数字密码攻破

推荐文章

热门文章

相关标签