使用 gpu 内存作为约束,使用 docker swarm 调度容器
Schedule a container with docker swarm using gpu memory as a constraint
是否可以将 docker 集群的容器调度到具有一定 gpu 内存的节点?[=11=]
例如,如果我需要调度一个具有 5gb gpu 内存的容器,我如何让 swarm 在具有足够 gpu 内存的节点可用之前不调度容器。
从 1.12.x 开始,使用 Docker Swarm - 我能想到的完成这样的事情的唯一方法如下:
- 从管理器节点,通过 docker 节点更新命令标记所有满足您要求的节点:
docker node update --label-add gpu-5g node-1
- 然后当您创建服务时使用约束参数将服务限制在目标机器上 运行
docker service create ...--constraint 'node.labels == gpu-5g'
如果您需要 运行 时间剩余的可用内存,那么可能需要组合容器来协调标签的设置。一个服务容器 运行 在你的所有 GPU 机器上报告当前可用内存,另一个在你的管理器节点上设置标签。
我会关注这个问题,因为它很有趣。阅读您最终如何解决这个问题将会很有趣。
是否可以将 docker 集群的容器调度到具有一定 gpu 内存的节点?[=11=]
例如,如果我需要调度一个具有 5gb gpu 内存的容器,我如何让 swarm 在具有足够 gpu 内存的节点可用之前不调度容器。
从 1.12.x 开始,使用 Docker Swarm - 我能想到的完成这样的事情的唯一方法如下:
- 从管理器节点,通过 docker 节点更新命令标记所有满足您要求的节点:
docker node update --label-add gpu-5g node-1
- 然后当您创建服务时使用约束参数将服务限制在目标机器上 运行
docker service create ...--constraint 'node.labels == gpu-5g'
如果您需要 运行 时间剩余的可用内存,那么可能需要组合容器来协调标签的设置。一个服务容器 运行 在你的所有 GPU 机器上报告当前可用内存,另一个在你的管理器节点上设置标签。
我会关注这个问题,因为它很有趣。阅读您最终如何解决这个问题将会很有趣。