使用containerd搭建MinIO集群服务
概述
因为在云服务器上默认只有一块磁盘,如果直接在系统盘上安装MinIO,会被拒绝,所以这里采用containerd的方式绕过这一限制
操作环境
操作系统
CentOS 7.9
MinIO版本
RELEASE.2023-03-09T23-16-13Z
服务器host信息
192.168.10.1 minio1
192.168.10.2 minio2
192.168.10.3 minio3
192.168.10.4 minio4
192.168.10.5 nginxserver
域名信息
注意:以下为假定的域名配置,实际部署时替换为自己的真实域名,并提供有效的证书信息
MinIO后台域名:console.minio.com
MinIO接口服务域名:api.minio.com
前提条件
首先要确保每台minio服务器上已经安装好了containerd组件,参见在Linux中安装containerd作为kubernetes的容器运行时
并且确保在nginxserver主机上安装了nginx,参见在CentOS中安装和使用nginx
安装
在每台机器上执行以下命令
注意:确保各个minio服务器之间的防火墙上已经开放了9000与9001的内网访问权限
其中MINIO_ROOT_USER与MINIO_ROOT_PASSWORD分别时MinIO后台访问的账号密码,请自行替换并妥善保管
环境变量MINIO_SERVER_URL的值会影响共享文件的链接地址,并且会参与签名计算
mkdir /miniodisk
MINIO_ROOT_USER=minio_admin
MINIO_ROOT_PASSWORD=minio_admin_password
MINIO_VERSION=RELEASE.2023-03-09T23-16-13Z
MINIO_CONTAINER=minio-server
ctr run --net-host -d \
--env=MINIO_ROOT_USER=$MINIO_ROOT_USER \
--env=MINIO_ROOT_PASSWORD=$MINIO_ROOT_PASSWORD \
--env=MINIO_SERVER_URL=https://api.minio.com \
--mount=type=bind,src=/miniodisk,dst=/data,options=rbind:rw docker.io/minio/minio:$MINIO_VERSION \
$MINIO_CONTAINER minio server \
http://minio1:9000/data \
http://minio2:9000/data \
http://minio3:9000/data \
http://minio4:9000/data \
--console-address ":9001"
此时,我们的MinIO集群已经搭建成功了
配置nginx
1、因为MinIO后台使用了WebSocket技术,需要在nginx上配置Host,Upgrade,Connection
请求头来支持WebSocket的转发,参见MinIO官方nginx示例与WebSocket proxying
2、在nginx上使用301强制将http请求重定向到https地址,保证访问的数据安全
3、修改client_max_body_size默认允许上传的文件大小限制,默认值是1M,如果上传大文件时会被阻止
4、将ssl_certificate和ssl_certificate_key指定为你自己的证书文件路径
以上操作需要修改/etc/nginx/nginx.conf文件,新增以下配置信息
http {
# 调大客户端请求体的大小限制,便于MinIO上传大文件
client_max_body_size 10M;
# websocket
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream minioapi {
server minio1:9000;
server minio2:9000;
server minio3:9000;
server minio4:9000;
}
upstream minioconsole {
server minio1:9001;
server minio2:9001;
server minio3:9001;
server minio4:9001;
}
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_set_header Host $http_host;
proxy_pass http://minioapi/;
}
}
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 Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
}
配置文件修改完毕之后,重启nginx,使配置生效
systemctl restart nginx
配置完成,确保nginxserver服务器开放了80与443端口外网访问权限,并且设置好了域名解析后,我们就可以通过https://console.minio.com访问MinIO后台了
使用containerd搭建MinIO集群服务的更多相关文章
- Windows10 搭建 ElasticSearch 集群服务
一.前言 集群的搭建需要多台机器,之前我使用 ubuntu 16.04 搭建过 hadoop 的单机模式和分布式模式,这个今后会写,今天先写一篇使用 < Windows10 搭建 Elastic ...
- 使用Codis搭建redis集群服务
转(http://www.jianshu.com/p/f8e968e57863) 一. 应用场景 redis 作为数据结构存储引擎,有着很多优点 高性能单机引擎可以达到5-10W qps 数据结构全面 ...
- CentOs7.3 搭建 SolrCloud 集群服务
一.概述 Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库: Solr是以Lucene为基础实现的文本检索应用服务.Solr部署方式有单机方式.多机Master-Slaver方式.C ...
- 分布式存储Minio集群环境搭建
MinIO 分布式集群搭建 分布式 Minio 可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务.由于硬盘分布在不同的节点上,分布式 Minio 避免了单点故障. Minio 分布式模式可 ...
- 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现
庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介 在第七篇文章<庐山真面目之七微服务架构Consul ...
- LVS负载均衡集群服务搭建详解(二)
lvs-nat模型构建 1.lvs-nat模型示意图 本次构建的lvs-nat模型的示意图如下,其中所有的服务器和测试客户端均使用VMware虚拟机模拟,所使用的CentOS 7 VS内核都支持ipv ...
- LVS负载均衡集群服务搭建详解(一)
LVS概述 1.LVS:Linux Virtual Server 四层交换(路由):根据请求报文的目标IP和目标PORT将其转发至后端主机集群中的某台服务器(根据调度算法): 不能够实现应用层的负载均 ...
- Linux Centos7 环境搭建Docker部署Zookeeper分布式集群服务实战
Zookeeper完全分布式集群服务 准备好3台服务器: [x]A-> centos-helios:192.168.19.1 [x]B-> centos-hestia:192.168.19 ...
- centos7搭建dolphinscheduler集群
一.简述 Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度系统.致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用.有 ...
- Kubeadm搭建kubernetes集群
Kubeadm搭建kubernetes集群 环境说明 | 角色 | ip | 操作系统 |组件 | | – | – | – | | master | 192.168.203.100 |centos8 ...
随机推荐
- Linux awk 替换文本字符串内容
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- ansible-file
path参数 :必须参数,用于指定要操作的文件或目录,在之前版本的ansible中,使用dest参数或者name参数指定要操作的文件或目录,为了兼容之前的版本,使用dest或name也可以. stat ...
- Dos基本命令及批处理
如何操作DOS命令: 开始----运行----cmd----回车: win+R------运行----cmd----回车: 基本命令: 1.命令:color f0 color ? 寻求帮助 改变背景 ...
- 开发Unity3D移动端输入插件 UGUI Touch Input Component
UGUI Touch Input Component 为了在移动设备上操控角色,本人便开发了UGUI Touch Input Component输入类插件. 特点 本插件中总共包含三种组件:the v ...
- 安卓蓝牙协议栈中的RFCOMM状态机分析
1.1 数据结构 1.1.1 tRFC_MCB tRFC_MCB(type of rfcomm multiplexor control block的简写)代表了一个多路复用器.代表了RFCOMM规范 ...
- uniapp项目 hbuilder工程转cli工程 hbuilder工程不可以用命令行打包
hbuilder工程不可以用命令行打包,只能用自带的发行手动打包 cli工程可以用命令行打包,可以配置多环境 1.安装空的cli项目 vue create -p dcloudio/uni-preset ...
- macOS开发应用Sign(签名)和Notarizaiton(公证)
签名 可执行文件签名: codesign -f -s ${证书ID} --timestamp ${签名文件} .Pkg安装文件签名: productsign --timestamp --sign ${ ...
- centos安装docker显示 No package docker-ce available
温馨提醒,docker内核版本必须是3.10+以上的版本 查看方式 uname -r 1. 卸载老版本的 docker 及其相关依赖 sudo yum remove docker docker-com ...
- 为什么你需要升级 pip
更新软件版本可以修复bug,增加新功能和提升性能.例如,NumPy 1.20 添加了类型注释,并在可能的情况下通过使用SIMD来提高性能.如果您要安装NumPy,则可能要安装最新版本. 相反,如果您使 ...
- PTA两个有序链表序列的合并
本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列. 函数接口定义: List Merge( List L1, List L2 ); 其中List结构定义如下: ...