简单实现搭建minio联邦集群

1、环境准备
环境:Ubuntu

软件:minio、etcd、coredns

集群minio集群1minio集群2
IP192.168.41.103、192.168.41.104192.168.41.105、192.168.41.106
etcd、coredns192.168.41.101192.168.41.101

2、搭建单机etcd

cd /usr/local

wget https://github.com/etcd-io/etcd/releases/download/v3.5.2/etcd-v3.5.2-linux-amd64.tar.gz

tar zxf etcd-v3.5.2-linux-amd64.tar.gz

cp etcd /usr/bin/

cp etcdctl /usr/bin/

mkdir -p /usr/local/config

3、简单启动etcd

nohup ./etcd --listen-client-urls 'http://0.0.0.0:2379' --advertise-client-urls 'http://0.0.0.0:2379'  &

4、搭建coredns

wget https://github.com/coredns/coredns/releases/download/v1.9.0/coredns_1.9.0_linux_amd64.tgz
tar zxf coredns_1.9.0_linux_amd64.tgz
mv coredns /usr/bin
mkdir /etc/coredns

5、添加主配置文件

vim /etc/coredns/Corefile

.:53 {	 #监听tcp和udp的53端口
   etcd {    #配置启用etcd插件,后面可以指定域名,例如 etcd test.com {
       stubzones   #启用存根区域功能。 stubzone仅在位于指定的第一个区域下方的etcd树中完成
     path /skydns  #etcd里面的路径 默认为/skydns,以后所有的dns记录就是存储在该存根路径底下
     endpoint http://localhost:2379 # etcd访问地址
       #upstream设置要使用的上游解析程序解决指向外部域名的在etcd(认为CNAME)中找到的外部域名。
       upstream /etc/resolv.conf   
       fallthrough  #如果区域匹配但不能生成记录,则将请求传递给下一个插件
       #tls CERT KEY CACERT  #可选参数,etcd认证证书设置
   }
   prometheus  # 监控插件
   cache 160
   loadbalance   # 负载均衡,开启DNS记录轮询策略
   forward . /etc/resolv.conf   #上面etcd未查询到的请求进行转发,设置代理或转发可根据环境实现
   #proxy . /etc/resolv.conf   #上面etcd未查询到的请求转发给设置的DNS服务器解析
   log    #打印日志
   error  #错误日志
}

6、简单启动etcd

nohup /usr/bin/coredns -conf /etc/coredns/Corefile > /tmp/coredns.log 2>&1 &

7、测试

dig @localhost +short www.baidu.com 

8、搭建minio集群
(1)minio集群1

cd /usr/local

wget   http://dl.minio.org.cn/server/minio/release/linux-amd64/minio   #下载地址

chmod a+x minio      #赋予执行权限

mkdir -p /data/minio

mkdir -p /data/minio/log

(2)配置脚本实现简单启动

#!/bin/bash

export MINIO_ACCESS_KEY=ucasadmin      #设置登录用户名
export MINIO_SECRET_KEY=ucasadmin      #设置登录密码

export MINIO_ETCD_ENDPOINTS="http://192.168.41.101:2379"   #配置etcd连接
export MINIO_PUBLIC_IPS=192.168.41.103,192.168.41.104    #此处需要配置上Minio-1 集群的所有ip
export MINIO_DOMAIN=bo.test.com    #此处为访问域名

/usr/local/minio server http://192.168.41.{103...104}/data/minio/data{1...2} --console-address :9000 --address :80 >/data/minio/log/minio.log 2>&1  &

(3)minio集群2

cd /usr/local

wget   http://dl.minio.org.cn/server/minio/release/linux-amd64/minio   #下载地址

chmod a+x minio      #赋予执行权限

mkdir -p /data/minio/

mkdir -p /data/minio/log

(4)配置脚本实现简单启动

#!/bin/bash

export MINIO_ACCESS_KEY=ucasadmin      #设置登录用户名
export MINIO_SECRET_KEY=ucasadmin      #设置登录密码

export MINIO_ETCD_ENDPOINTS="http://192.168.41.101:2379"   #配置etcd连接
export MINIO_PUBLIC_IPS=192.168.41.105,192.168.41.106    #此处需要配置上Minio-1 集群的所有ip
export MINIO_DOMAIN=bo.test.com    #此处为访问域名

/usr/local/minio server http://192.168.41.{105...106}/data/minio/data{1...2} --console-address :9000 --address :80 >/data/minio/log/minio.log 2>&1  &

然后就可以启动访问了
9、简单介绍
搭配etcd和coredns实现联邦集群可通过域名解析将数据注册到etcd中,使用coredns进行轮询分发,扩展性高,后期扩展可将集群指向etcd将信息注册到其中便可通过coredns进行分发解析,方便了集群的扩展和缩减
在这里插入图片描述
10、minio的优点

高性能:作为高性能对象存储,在标准硬件条件下它能达到55GB/s的读、35GG/s的写速率
可扩容:不同MinIO集群可以组成联邦,并形成一个全局的命名空间,并跨越多个数据中心
云原生:容器化、基于K8S的编排、多租户支持
兼容性:兼容S3 API这一事实上的对象存储标准,最先支持S3 Select
简单:这一设计原则让MinIO不容易出错、更快启动
支持纠删码:MinIO使用纠删码、Checksum来防止硬件错误和静默数据污染。在最高冗余度配置下,即使丢失1/2的磁盘也能恢复数据

11、实现功能比较简单,后续将更新整个集群的搭建及维护流程

好的,下面是使用docker搭建minio分布式集群的详细步骤: 1. 安装Docker和Docker Compose 您需要在您的机器上安装Docker和Docker Compose。如果您还没有安装,请先安装。 2. 创建docker-compose.yml文件 在您的工作目录下创建一个名为docker-compose.yml的文件,并将以下内容复制到文件中。 ``` version: '3' services: minio1: image: minio/minio container_name: minio1 command: server http://minio{1...4}/data{1...4} ports: - "9001:9000" volumes: - ./data1:/data1 environment: MINIO_ACCESS_KEY: YOUR_ACCESS_KEY MINIO_SECRET_KEY: YOUR_SECRET_KEY restart: always minio2: image: minio/minio container_name: minio2 command: server http://minio{1...4}/data{1...4} ports: - "9002:9000" volumes: - ./data2:/data2 environment: MINIO_ACCESS_KEY: YOUR_ACCESS_KEY MINIO_SECRET_KEY: YOUR_SECRET_KEY restart: always minio3: image: minio/minio container_name: minio3 command: server http://minio{1...4}/data{1...4} ports: - "9003:9000" volumes: - ./data3:/data3 environment: MINIO_ACCESS_KEY: YOUR_ACCESS_KEY MINIO_SECRET_KEY: YOUR_SECRET_KEY restart: always minio4: image: minio/minio container_name: minio4 command: server http://minio{1...4}/data{1...4} ports: - "9004:9000" volumes: - ./data4:/data4 environment: MINIO_ACCESS_KEY: YOUR_ACCESS_KEY MINIO_SECRET_KEY: YOUR_SECRET_KEY restart: always ``` 3. 启动集群 在您的工作目录中运行以下Docker Compose命令,以启动Minio集群。 ``` docker-compose up -d ``` 这将在您的机器上启动四个Minio容器,每个容器都有一个自己的数据卷,并且它们都在同一网络中。 4. 访问Minio UI 您可以在浏览器中访问http://localhost:9001/,并使用您的访问密钥和秘密密钥登录Minio UI。您将看到一个名为“data1”的存储桶已经被创建。 5. 添加其他节点 如果您需要添加其他节点,请在docker-compose.yml文件中添加另一个服务,并使用相同的access key和secret key。您还需要在Minio UI中添加新的节点。 这些是使用Docker Compose搭建Minio分布式集群的基本步骤。如果您需要更详细的指导,请查看Minio官方文档。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值