首页 > 解决方案 > 将 Docker 容器部署到 swarm 集群中的多个节点

问题描述

我有一个由 6 个工作节点和 3 个主节点组成的集群,因此总共有 9 个节点。我的 swarm 集群中有不同大小的机器。所以有一个要求,我需要根据节点的大小在特定的工作节点上部署某些服务(容器)。我知道我们可以在 docker-compose 文件中设置放置约束,并且可以指定主机名。

由于我将运行该服务的 2 个副本,因此 swarm 将在我设置了约束的同一个工作人员上创建副本。但我不希望副本在同一个工作节点上运行。

我们可以在设置放置约束时选择指定多个主机名吗?请指导。

标签: dockerdocker-swarm

解决方案


您可以通过标签组合一些节点。

    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]

推荐阅读