gpt4 book ai didi

使用containerd搭建MinIO集群服务

转载 作者:我是一只小鸟 更新时间:2023-03-14 06:31:06 25 4
gpt4 key购买 nike

概述

因为在云服务器上默认只有一块磁盘,如果直接在系统盘上安装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集群服务的文章就讲到这里了,如果你想了解更多关于使用containerd搭建MinIO集群服务的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com