docker-安装minio集群

news2024/9/21 17:32:17

目录

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.服务器列表

ameip远程端口
minio_04192.168.1.1122
minio_03192.168.1.1022
minio_02192.168.1.922
minio_01/nginx192.168.1.322

2.NTP时间同步

1.服务端 minio_01配置

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

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

 

 

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

 

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

 

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

 

# 启动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 <<EOF 
	192.168.1.3 minio1
	192.168.1.9 minio2 
	192.168.1.10 minio3 
	192.168.1.11 minio4
EOF
# 查看文件内容
cat /etc/hosts

 

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

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

 

 

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

 

4.访问

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

 

5.查看集群

 

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}

 

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

 

# 查看nginx运行状态

 

2.访问代理

http://192.168.1.3:19001

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/594361.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[web]关于过滤器Filter

前言 为了避免在没有登录的情况下也可以通过路径访问到所有页面&#xff0c; 如果在每一个需要请求的资源里面都通过Session去判断有没有登录的用户对象就需要书写大量的判断代码&#xff0c;此时就可以用到Filter过滤器 作用 让请求的某些资源在之前或之后经过过滤器&#xff…

uni-app路由配置使用和页面跳转传参

uni-app路由配置使用和页面跳转传参 uni-app路由配置使用和页面跳转传参 文章目录 uni-app路由配置使用和页面跳转传参前言一、组件式路由跳转传参二、函数式路由跳转传参总结 前言 UNI-APP学习系列之路由配置使用和页面跳转传参 一、组件式路由跳转传参 组件式路由跳转 示例…

Java设计模式(一)

系列文章目录 单一职责原则 接口隔离原则 依赖倒转原则 文章目录 系列文章目录前言一、单一职责原则1.单一职责原则注意事项和细节 二、接口隔离原则1.接口隔离原则基本介绍(Interface Segregation Principle)2.应传统方法的问题和使用接口隔离原则改进 三、依赖倒转原则1.依赖…

【Linux】——调试器-gdb的使用

序言&#xff1a; 本期&#xff0c;我将带领大家学习的关于linux下的调试器gdb的使用&#xff0c;废话不多说跟着我一起去看看吧&#xff01;&#xff01; 目录 前言 &#xff08;一&#xff09;背景介绍 1、debug模式和release模式 2、为什么Release不能调试但DeBug可以调…

nDreams CEO:是时候打破市场对VR游戏的错误认知了

自Quest系列头显问世以来&#xff0c;VR游戏市场仿佛被注入了一剂强心针&#xff0c;发展速度远超Rift时代。从Quest 1到现在&#xff0c;已经过去4年左右&#xff0c;现在VR游戏市场又走到了哪呢&#xff1f;在GDC 2023上&#xff0c;资深VR游戏工作室和发行商nDreams公布了一…

django-vue-admin-pro 使用

地址&#xff1a; GitHub - dvadmin-pro/django-vue-admin-pro 一、准备工作 Python > 3.8.0 (推荐3.9版本) nodejs > 14.0 (推荐最新) Mysql > 5.7.0 (可选&#xff0c;默认数据库sqlite3&#xff0c;推荐8.0版本) Redis(可选&#xff0c;最新版)项目运行及部署 |…

Android crash 流程详解(一):JE

源码基于&#xff1a;Android R 0. 前言 App crash(全称为 Application crash)&#xff0c;又分 java crash 和 native crash&#xff0c;又称 java layer exception(JE) 和 native layer exception(NE)。对于 crash 在开发过程中或多或少都会遇到&#xff0c;本文将整理总结 …

Shell脚本攻略:shell函数应用

目录 一、理论 1.shell函数 2.函数传参 3.函数变量的作用范围 4.递归 5.函数位置变量与脚本位置变量区别 6.创建库 二、实验 1.实验一 一、理论 1.shell函数 &#xff08;1&#xff09;概念 将命令序列按格式写在一起&#xff0c;可方便重复使用命令序列。 ① 避免…

JetBrains的Java集成开发环境IntelliJ 2023版本在Win10系统的下载与安装配置教程

目录 前言一、IntelliJ 安装二、使用配置总结 前言 IntelliJ IDEA Ultimate是一款功能强大的Java集成开发环境&#xff08;IDE&#xff09;。它提供了丰富的功能和工具&#xff0c;可以帮助开发人员更高效地编写、调试和部署Java应用程序。 IntelliJ IDEA Ultimate的主要特点…

Benewake(北醒) 快速实现TFmini-Plus-IIC与电脑通信的操作说明

目录 1. 概述2. 测试准备2.1 工具准备2.2通讯协议转换 3. IIC通讯测试3.1 引脚说明3.2 测试步骤3.2.1 TFmini-Plus-IIC 与 PC 建立连接3.2.2 获取测距值3.2.3 更改 slave 地址 1. 概述 通过本文档的概述&#xff0c;能够让初次使用测试者快速了解测试 IIC 通信协议需要的工具以…

48. 旋转图像

48. 旋转图像 C代码&#xff1a; void rotate(int** matrix, int matrixSize, int* matrixColSize){int m matrixSize;int n matrixColSize[0];int arr[m*n];int arrTop 0;memset(arr, 0, sizeof(int) * m * n);for (int i 0; i < m; i) {for (int j 0; j < n; j) …

【Springcloud】分布式搜索elasticsearch

文章目录 1、ElasticSearch 1、ElasticSearch 先看下翻译&#xff1a; elasticsearch是一款非常强大的开源搜索引擎&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 项目在运行的时候会产生海量的日志信息&#xff0c;而elasticsearch结合kibana、Logstash、Beats&am…

2023免费的苹果手机备份app软件iMazing

苹果备份APP怎么备份&#xff1f;一般情况下&#xff0c;苹果手机备份照片、短信等可以使用iCloud备份。虽然App也可以使用iCloud备份&#xff0c;但是App数据一般较多&#xff0c;需要较大的iCloud存储空间&#xff0c;而免费的iCloud存储空间只有5GB&#xff0c;很多人都不想…

[C++] 继承和多态

Be water my friend. 一.关于继承(inheritance) 基础知识&#xff1a; 继承的定义格式&#xff1a; 继承方式的比较&#xff1a; 继承中的作用域&#xff1a; 基类和派生类对象赋值转换 : 派生类的默认成员函数 关于继承的补充 如何防止继承的发生(final关键字…

ThreeJS教程:CSS3批量标注多个标签

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 3D工具集&#xff1a; NSDT简石数字孪生 CSS3批量标注多个标签 下面下工厂为例&#xff0c;使用CSS3DRenderer批量渲染多个HTML元素标签。 CSS3渲染器基本代码 CSS3渲染器代码和上节课内容一样设置即可。 // 引入CSS3渲…

掌握哪些测试技术才能说自己已经学成了?

一、过硬的基础能力 其实所有的测试大佬都是从底层基础开始的&#xff0c;随着时间&#xff0c;经验的积累慢慢变成大佬。要想稳扎稳打在测试行业深耕&#xff0c;成为测试大牛&#xff0c;首当其冲的肯定就是拥有过硬的基础&#xff0c;所有的基础都是根基&#xff0c;后期所…

Docker利用DockerFile创建部署NVIDIA+PyTorch容器

Docker利用DockerFile创建部署NVIDIAPyTorch容器 1、创建 Dockerfile2、在 Dockerfile 中添加关键字和命令3、使用 Docker Build 命令构建镜像4、验证和测试 Docker 映像 1、创建 Dockerfile 首先在用户的主目录下创建一个名为 mycode 的文件夹&#xff0c;然后创建 Dockerfil…

马斯克:我是 Rust 粉丝,但为了性能我会毫不犹豫选择 C/C++

作为一个几乎时刻处于风口浪尖上的“网络红人”&#xff0c;特斯拉 CEO 埃隆马斯克(Elon Musk)被外界评价为“致力于从人工智能手中拯救人类”的钢铁侠。近期&#xff0c;这位大佬又因不少“出格”言论而在社交媒体上引发热议 —— 在一家 AI 公司谈论编程“error messages”的…

【备战秋招】每日一题:4月1日美团春招(二批)第四题:题面+题目思路 + C++/python/js/Go/java带注释

2023大厂笔试模拟练习网站&#xff08;含题解&#xff09; www.codefun2000.com 最近我们一直在将收集到的各种大厂笔试的解题思路还原成题目并制作数据&#xff0c;挂载到我们的OJ上&#xff0c;供大家学习交流&#xff0c;体会笔试难度。现已录入200道互联网大厂模拟练习题&…

电商 - 高并发下订单商品库存扣减方案

开发一个电商库存系统时,我们最担心的就是高并发和防超卖了 电商库存系统场景 前提:分布式系统,高并发 商品A只有100库存,现在有1000或者更多的用户购买。如何保证商品库存在高并发的场景下是安全的 高并发场景下,商品展示页上面的信息,除了库存的其他信息属于静态数据…