Docker 将容器部署到 swarm 集群中的多个节点

Docker container deployment to mulitple nodes in a swarm cluster

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

因为我将 运行 服务的 2 个副本,所以 swarm 将在我设置了约束的同一个 worker 上创建副本。但我不希望副本 运行 在同一个工作节点上。

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

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

    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]