将 Docker 容器部署到 swarm 集群中的多个节点
Posted
技术标签:
【中文标题】将 Docker 容器部署到 swarm 集群中的多个节点【英文标题】:Docker container deployment to mulitple nodes in a swarm cluster 【发布时间】:2020-08-21 08:06:38 【问题描述】:我有一个由 6 个工作节点和 3 个主节点组成的集群,因此总共有 9 个节点。 我的 swarm 集群中有不同大小的机器。 所以有一个要求,我需要根据节点的大小在特定的工作节点上部署某些服务(容器)。 我知道我们可以在 docker-compose 文件中设置放置约束,并且可以指定主机名。
由于我将运行该服务的 2 个副本,因此 swarm 将在我设置了约束的同一个 worker 上创建副本。但我不希望副本在同一个工作节点上运行。
我们可以在设置放置约束时选择指定多个主机名吗?请指导。
【问题讨论】:
【参考方案1】:你可以通过标签来组合一些节点。
docker node update --label-add ssd=fat_machine hostname1
docker node update --label-add ssd=fat_machine hostname2
并在 docker-compose 中定义标签
constraints: [node.labels.ssd == fat_machine]
【讨论】:
以上是关于将 Docker 容器部署到 swarm 集群中的多个节点的主要内容,如果未能解决你的问题,请参考以下文章
云计算之路-阿里云上-容器难容:自建docker swarm集群遭遇无法解决的问题
通过docker-machine和etcd部署docker swarm集群