• 使用Docker Swarm部署Minio
    • 1. 前提条件
    • 2. 创建Swarm
    • 3. 为Minio创建Docker secret
    • 4. 部署分布式minio服务
    • 4. 删除分布式Minio services
      • 注意事项
      • 了解更多

    使用Docker Swarm部署Minio

    Docker Engine在Swarm模式下提供集群管理和编排功能。 Minio服务器可以在Swarm的分布式模式下轻松部署,创建一个多租户,高可用性和可扩展的对象存储。

    从Docker Engine v1.13.0 (Docker Compose v3.0)开始, Docker Swarm和Compose 二者cross-compatible。这允许将Compose file用作在Swarm上部署服务的模板。 我们使用Docker Compose file创建分布式Minio设置。

    1. 前提条件

    • 熟悉Swarm mode key concepts.
    • Docker engine v1.13.0运行在[networked host machines]集群上(https://docs.docker.com/engine/swarm/swarm-tutorial/#/three-networked-host-machines).

      2. 创建Swarm

    在管理节点上创建一个swarm,请运行下面的命令

    1. docker swarm init --advertise-addr <MANAGER-IP>

    一旦swarm初使化了,你可以看到下面的响应信息

    1. docker swarm join \
    2. --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
    3. 192.168.99.100:2377

    你现在可以运行上述命令添加worker节点到swarm。更多关于创建swarm的细节步骤,请访问Docker documentation site.

    3. 为Minio创建Docker secret

    1. echo "AKIAIOSFODNN7EXAMPLE" | docker secret create access_key -
    2. echo "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" | docker secret create secret_key -

    4. 部署分布式minio服务

    在你的Swarm master上下载Docker Compose file ,然后运行下面的命令

    1. docker stack deploy --compose-file=docker-compose-secrets.yaml minio_stack

    这将把Compose file里描述的服务部署为Docker stackminio_stack。 更多 docker stack 命令参考。

    在stack成功部署之后,你可以通过Minio Client mc 或者浏览器访问http://[Node_Public_IP_Address]:[Expose_Port_on_Host]来访问你的Minio server。

    4. 删除分布式Minio services

    删除分布式Minio services以及相关的网络,请运行下面的命令

    1. docker stack rm minio_stack

    Swarm不会自动删除为Minio服务创建的host volumes,如果下次新的Minio服务不熟到swarm上,可能会导致损坏。因此,我们建议手动删除所有Minio使用的volumes。为此,到每一个swarm的节点上,列出所有的volumes

    1. docker volume ls

    然后删除minio_stack volumes

    1. docker volume rm volume_name

    注意事项

    • 默认情况下Docker Compose file使用的是最新版的Minio server的Docker镜像,你可以修改image tag来拉取指定版本的Minio Docker image.

    • 默认情况下会创建4个minio实例,你可以添加更多的Minio服务(最多总共16个)到你的Minio Comose deployment。添加一个服务

      • 复制服务定义并适当地更改新服务的名称。
      • 更新每个服务中的命令部分。
      • 更新要为新服务公开的端口号。 另外,请确保分配给新服务的端口尚未使用。
        关于分布式Minio的更多资料,请访问这里.
    • 默认情况下,Minio服务使用的是local volume driver. 更多配置选项,请访问Docker documentation 。

    • Docker compose file中的Minio服务使用的端口是9001到9004,这允许多个服务在主机上运行。更多配置选项,请访问Docker documentation.

    • Docker Swarm默认使用的是ingress做负载均衡,你可以跟据需要配置external load balancer based。

    了解更多

    • Docker Swarm mode概述
    • Minio Docker快速入门
    • 使用Docker Compose部署Minio
    • Minio纠删码快速入门

    原文: https://docs.minio.io/cn/deploy-minio-on-docker-swarm.html