docker-compose 部署单机、多机minio
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
一、介绍
MinIO是对象存储服务。它基于Apache License 开源协议兼容Amazon S3云存储接口。适合存储非结构化数据如图片音频视频日志等。对象文件最大可以达到5TB。
二、机器信息
机器ip | 节点 |
---|---|
192.168.121.135 | minio、nginx |
192.138.121.136 | minio |
三、操作流程
1、docker、docker-compose环境
1.更新yum包
yum update
2.执行 Docker 安装脚本这个脚本会添加 docker.repo 源并安装 Docker。
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
3.启动 Docker 进程
systemctl start docker
systemctl enable docker
curl -L https://github.com/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
2、创建minio工作目录和数据挂载目录
以135为例~
自己玩可以简单点生产需要四个data目录即data{1,4}
mkdir /root/minio/minio/data/data{1,2} -p
创建docker-compose.yml
version: "3.7"
services:
minio:
image: "quay.io/minio/minio:RELEASE.2022-08-02T23-59-16Z"
ports:
- "9000:9000"
- "9001:9001"
volumes:
- /root/minio/minio/data1:/data1
- /root/minio/minio/data2:/data2
command: server --console-address ":9001" http://minio/data{1...2}
environment:
- MINIO_ROOT_USER=admin
- MINIO_ROOT_PASSWORD=12345678
- MINIO_DISTRIBUTED_NODES=192.168.121.135,192.168.121.136
- MINIO_SKIP_CLIENT=yes
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
部署minio
docker-compose pull
docker-compose up -d
也可以查看日志
docker-compose logs minio
查看是否健康
简单访问
机器136基本一致操作
3、nginx做代理、负载
机器135~
mkdir /root/nginx -p
创建docker-compose.yml
version: '3.7'
services:
nginx:
image: nginx:1.19.2-alpine
hostname: nginx
volumes:
- /root/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
ports:
- "19000:9000"
- "19001:9001"
nginx:1.19.2-alpine这个镜像可能下载较慢
提供地址https://download.csdn.net/download/LiukuoDocker7/87073010
映射nginx.conf
nginx用的ip_hash的负载策略
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 4096;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
upstream minio {
server 192.168.121.135:9000;
server 192.168.121.136:9000;
}
upstream console {
ip_hash;
server 192.168.121.135:9001;
server 192.168.121.136:9001;
}
server {
listen 9000;
listen [::]:9000;
server_name localhost;
ignore_invalid_headers off;
client_max_body_size 0;
proxy_buffering off;
proxy_request_buffering off;
location / {
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_connect_timeout 300;
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_pass http://minio;
}
}
server {
listen 9001;
listen [::]:9001;
server_name localhost;
ignore_invalid_headers off;
client_max_body_size 0;
proxy_buffering off;
proxy_request_buffering off;
location / {
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_set_header X-NginX-Proxy true;
real_ip_header X-Real-IP;
proxy_connect_timeout 300;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
chunked_transfer_encoding off;
proxy_pass http://console;
}
}
}
按照前面的方式查看是否健康
docker-compose pull
docker-compose up -d
docker-compose logs minio
使用nginx代理地址访问
四、结言
nginx代理的页面进行bucket创建查看135或者136是否有同名的bucket创建即可也可以去挂载的数据目录下面去找bucket
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |