简介
MinIO 是一款热门、轻量、开源的对象存储方案,完美兼容 AWS S3 协议,友好支持 K8s。MinIO 是专为 AI 等云原生工作负载而设计的,可以为高性能的云原生数据机器学习、大数据分析、海量存储的基础架构等提供数据工作负载。
安装
在 /nwa/minio 下新建 docker-compose.yml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 version: '3.7' x-minio-common: &minio-common image: minio/minio command: server --console-address ":9001" http://minio{1...4}/data expose: - '9000' environment: MINIO_PROMETHEUS_AUTH_TYPE: public MINIO_PROMETHEUS_URL: http://106.53.76.173:6061 MINIO_PROMETHEUS_JOB_ID: minio-job MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: Nwa741741 healthcheck: test: ['CMD' , 'curl' , '-f' , 'http://localhost:9000/minio/health/live' ] interval: 30s timeout: 20s retries: 3 services: minio1: <<: *minio-common hostname: minio1 ports: - '9001:9001' volumes: - ./data/data1:/data minio2: <<: *minio-common hostname: minio2 ports: - '9002:9001' volumes: - ./data/data2:/data minio3: <<: *minio-common hostname: minio3 ports: - '9003:9001' volumes: - ./data/data3:/data minio4: <<: *minio-common hostname: minio4 ports: - '9004:9001' volumes: - ./data/data4:/data nginx: image: nginx:1.19.2-alpine hostname: nginx volumes: - ./config/nginx.conf:/etc/nginx/nginx.conf:ro ports: - '9000:9000' depends_on: - minio1 - minio2 - minio3 - minio4
配置 Nginx 反向代理
在 /nwa/minio/config 下新建 nginx.conf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 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 minio1:9000 ; server minio2:9000 ; server minio3:9000 ; server minio4:9000 ; } server { listen 9000 ; listen [::]:9000 ; server_name localhost; ignore_invalid_headers off ; client_max_body_size 0 ; proxy_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; } } }
启动集群
在 minio 文件夹下新建终端,启动它:
1 2 cd /nwa/minio docker-compose up -d
端口说明
端口打开 5 个,9000-9004。9000 是 Nginx,其他 4 个是 MinIO 实例的。
访问地址
用户名:minioadmin
密码:Nwa741741
赋予启动脚本权限
1 sudo chmod +x /nwa/minio/docker-start.sh
常见问题
虚拟机启动时 MinIO 是关闭状态,需要重新启动:
1 2 cd /nwa/minio docker-compose up -d
使用说明
登录后,去 users 配置新增一个 access key、密钥及权限(后面要用),再去建个桶 lucky,点击设置改 public,去 IDEA 导入依赖。
修改 docker-compose.yml 后使其生效:
1 docker-compose up --force-recreate -d