使用GPU内存作为约束条件,在Docker Swarm中安排容器的计划

4

是否可以使用Docker Swarm调度具有特定GPU内存量的容器?

例如,如果我需要为5GB GPU内存调度一个容器,如何让Swarm不在没有足够GPU内存的节点上调度该容器,直到有可用的节点满足需求。

1个回答

3
截至1.12.x版本,使用Docker Swarm实现此类功能的唯一方法我能想到如下:
- 从管理节点通过docker node update命令为满足您要求的所有节点添加标签:
docker node update --label-add gpu-5g node-1
- 然后在创建服务时使用约束参数来限制服务运行的目标机器:
docker service create ...--constraint 'node.labels == gpu-5g'
如果您需要具有运行时剩余可用内存,则可以使用容器组合编排设置标签。一个在所有GPU机器上运行的服务容器报告当前可用内存,另一个在管理节点上的服务容器则设置标签。
我会密切关注这个问题,因为它很有趣。看看您最终是如何解决这个问题的也会很有趣。

1
收到了一些反馈,说Mesos/Marathon支持这个功能,我正在调查,如果不行的话,我可能会实现上述版本,使用服务容器更新节点标签,以获取可用GPU并将其用作约束条件。 - Jonathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接