简单实现搭建minio联邦集群

1、环境准备
环境:Ubuntu

软件:minio、etcd、coredns

集群 minio集群1 minio集群2
IP 192.168.41.103、192.168.41.104 192.168.41.105、192.168.41.106
etcd、coredns 192.168.41.101 192.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、实现功能比较简单,后续将更新整个集群的搭建及维护流程

你可能感兴趣的:(linux,linux,系统架构)