在节点上禁止多个容器

如何禁止多个容器使用的节点:Docker,Swarm,Compose? 例如,我有5个节点,我想部署3个副本一些服务,我希望这个副本将在不同的节点上。

Docker的swarm模式目前默认为HA调度策略,所以只要有多个可用的节点来调度任务,就不需要在多个节点上分布服务。 约束,内存限制和停机可能会影响必须安排任务的可用节点。 HA调度程序首先search具有最less任务实例的候选节点(通常为0,除非您的复制品多于节点),然后它通过优先于较less任务的节点来打破结果列表。

为了进一步控制在多个节点上分配任务,我build议查看最近版本中添加的布局首选项 。 我不认为这已经成为堆栈和组合文件,但我认为这只是一个时间问题,直到它(新的群模式function首先引入到docker service命令行,然后添加到更高级别的抽象)。 放置首选项允许您将节点标记为指示更高级别的拓扑,例如常见机架,交换机或数据中心。 而且布局首选项启用拓扑感知调度,可以将任务分散到具有唯一值的所需标签的节点之间。 因此,如果您有两个单独的机架,每个机架有5个节点,如果没有拓扑意识调度,则可以在单个机架上调度所有内容,并且通过拓扑调度,可以将一半的任务放在每个机架上。