zoukankan      html  css  js  c++  java
  • docker swarm 部署minio集群

    docker swarm 布署minio集群

    Minio 集群至少需要四个节点,因此至少安装 4 台虚拟机。主机名随意,最好以数字后缀区分,方便识别。

    前提条件

    节点目录如下:

    192.168.20.245 master245
    192.168.20.253 node253
    192.168.20.252 node252
    192.168.20.247 node247
    

    主节点执行以下命令:

    [root@master245 ~]# docker swarm init --advertise-addr 192.168.20.245
    
    • 记录此处生成的token,后续节点加入需用到。

    从节点分别执行以下命令:

    [root@node253 ~]# docker swarm join --token SWMTKN-1-0djcl7ux0xg1hl366sgc1yohxc56wva55i8lggzc8hxh1uw487-39l3r4d0huc6fd1ktwotxx71f 192.168.20.245:2377
    

    节点列表如下:

    [root@master245 minio]# docker node ls
    ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
    yzq5drjkhurkx8b0qydzecxo9 *   master245           Ready               Active              Leader              19.03.11
    piipiswdy5bgvewtdt7brer16     node247             Ready               Active                                  19.03.8
    ozth72jm8rtq5wca6xgm9gc9r     node252             Ready               Active                                  19.03.8
    pvic27dwckvuefq777frk9ee4     node253             Ready               Active                                  19.03.11
    

    删除节点

    # master
    [root@master245 ~]# docker node update --availability drain node252 
    # node
    [root@node252 ~]# docker swarm leave --force   
    # master           
    root@master245 ~]# docker node rm --force node252
    

    主节点生成密钥,手动生成接口使用的 access key 和 secret key

    • 分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,这样这些节点才能建立联接。为了实现这个,你需要在执行minio server命令之前,先将access秘钥和secret秘钥export成环境变量。
    [root@master245 minio]# echo "minioadmin" | docker secret create access_key -
    jdhw6gnannlfhicvnjv7kiibh
    [root@master245 minio]# echo "12345678" | docker secret create secret_key -
    szd7nzce95aeibrvn30keeapr
    
    • 此处密码长度最小为8位。

    节点打标签,绑定容器与节点之间一一对应的关系,主节点执行。

    [root@master245 minio]# docker node update --label-add minio1=true yzq5drjkhurkx8b0qydzecxo9
    yzq5drjkhurkx8b0qydzecxo9
    [root@master245 minio]# docker node update --label-add minio2=true piipiswdy5bgvewtdt7brer16
    piipiswdy5bgvewtdt7brer16
    [root@master245 minio]# docker node update --label-add minio3=true ozth72jm8rtq5wca6xgm9gc9r
    ozth72jm8rtq5wca6xgm9gc9r
    [root@master245 minio]# docker node update --label-add minio4=true pvic27dwckvuefq777frk9ee4
    pvic27dwckvuefq777frk9ee4
    

    Stack compose 文件

    修改主机名hostname,标签等参数。

    部署minio分布式服务,主节点执行

    • 通过FTP或lrzsz工具上传修改后的docker-compose-secrets.yaml文件到当前目录。
    • 分布式Minio使用的磁盘里必须是干净的,里面没有数据。
    • 分布式Minio里的节点时间差不能超过3秒,你可以使用NTP 来保证时间一致。
    [root@master245 ~]# yum -y install lrzsz
    # 上传
    rz
    # 下载
    sz filename
    
    [root@master245 minio]# docker stack deploy --compose-file=docker-compose-secrets.yaml minio_stack5
    Creating network minio_stack5_minio_distributed
    Creating service minio_stack5_minio3
    Creating service minio_stack5_minio4
    Creating service minio_stack5_minio1
    Creating service minio_stack5_minio2
    

    查看执行结果

    [root@master245 minio]# docker stack ps minio_stack5
    ID                  NAME                    IMAGE                                      NODE                DESIRED STATE       CURRENT STATE                     ERROR               PORTS
    pce2wnrvh3k1        minio_stack5_minio2.1   minio/minio:RELEASE.2020-06-03T22-13-49Z   node247             Running             Preparing 13 seconds ago                              
    s6h6kryczbuy        minio_stack5_minio1.1   minio/minio:RELEASE.2020-06-03T22-13-49Z   master245           Running             Preparing 29 seconds ago                              
    wat061fy3is5        minio_stack5_minio4.1   minio/minio:RELEASE.2020-06-03T22-13-49Z   node253             Running             Preparing 41 seconds ago                              
    2twtxfbnftge        minio_stack5_minio3.1   minio/minio:RELEASE.2020-06-03T22-13-49Z   node252             Running             Starting less than a second ago 
    
    [root@master245 minio]# docker service ls
    ID                  NAME                  MODE                REPLICAS            IMAGE                                      PORTS
    5g8jq3002in5        minio_stack5_minio1   replicated          1/1                 minio/minio:RELEASE.2020-06-03T22-13-49Z   *:9001->9000/tcp
    yvqc4mt08uep        minio_stack5_minio2   replicated          1/1                 minio/minio:RELEASE.2020-06-03T22-13-49Z   *:9002->9000/tcp
    4kss16v7h2pz        minio_stack5_minio3   replicated          1/1                 minio/minio:RELEASE.2020-06-03T22-13-49Z   *:9003->9000/tcp
    ppgqku1q61lo        minio_stack5_minio4   replicated          1/1                 minio/minio:RELEASE.2020-06-03T22-13-49Z   *:9004->9000/tcp
    
    • 如果不出意外,在四个节点上都会分别运行一个 docker 容器。

    验证

    • 验证是否部署成功,使用浏览器访问Minio服务或者使用 MinIO Client mc。多个节点的存储容量和就是分布式Minio的存储容量。

    删除集群

    [root@master245 minio]# docker stack rm minio_stack5
    Removing service minio_stack5_minio1
    Removing service minio_stack5_minio2
    Removing service minio_stack5_minio3
    Removing service minio_stack5_minio4
    Removing network minio_stack5_minio_distributed
    

    注意事项

    • 默认情况下Docker Compose file使用的是最新版的MinIO server的Docker镜像,你可以修改image tag来拉取指定版本的MinIO Docker image
    • 默认情况下会创建4个minio实例,你可以添加更多的MinIO服务(最多总共16个)到你的MinIO Comose deployment。添加一个服务。
      • 复制服务定义并适当地更改新服务的名称。
      • 更新每个服务中的命令部分。
      • 更新要为新服务公开的端口号。 另外,请确保分配给新服务的端口尚未使用。
    • 默认情况下,MinIO服务使用的是local volume driver. 更多配置选项,请访问Docker documentation
    • Docker compose file中的MinIO服务使用的端口是9001到9004,这允许多个服务在主机上运行。更多配置选项,请访问Docker documentation
    • Docker Swarm默认使用的是ingress做负载均衡,你可以跟据需要配置external load balancer based

    负载均衡代理

  • 相关阅读:
    SQL Server OPENQUERY使用
    VS2013程序打包报 ISEXP : error -****: An error occurred streaming
    IIS重新注册
    c#之反射(Reflection)
    c#之Lambda表达式
    c#之委托事件(DelegateEvent)
    c#之委托详解(Delegate)
    git将文件托管到github上遇到的问题
    c#之泛型详解(Generic)
    linux下操作memcache的操作命令
  • 原文地址:https://www.cnblogs.com/lenovo_tiger_love/p/13050511.html
Copyright © 2011-2022 走看看