使用Docker Swarm部署MinIO Slack Go Report Card Docker Pulls

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. 前提条件

2. 创建Swarm

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

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

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

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

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

3. 为MinIO创建Docker secret

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

4. 部署分布式minio服务

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

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以及相关的网络,请运行下面的命令

docker stack rm minio_stack

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

docker volume ls

然后删除minio_stack volumes

docker volume rm volume_name 

注意事项

了解更多