如何在 docker 编排中定义专用节点

How to define a specialized node in docker orchestration

我想在生产者、FIFO 和消费者服务中部署一个应用程序拆分。 我有几个在队列中推送作业的生产者和几个处理作业的消费者。为了简化部署过程,我想使用 docker 编排应用程序(如 Marathon/Mesos、Kubernetes 或 Docker swarm)。我的消费者已经 运行 在 docker 内。

我的问题是,消费者需要 运行 在 computer/server 上使用 GPU,其他仅在 CPU 上。是否可以在集群中定义将 运行 一种服务的专用节点?

是的,尤其是对于更新版本 (1.6+) 的 kubernetes,它有一个 very rich configuration 用于传达如何将 Pods 分配给节点。如果您的设置非常简单,那么 nodeSelector 就足够有效并且超级容易设置和向其他人解释。

如果您的需求更复杂,kubernetes 可以实现,但需要更多的阅读和测试;如果您需要使 other Pods 远离相关节点

我也看到一些 GPU-specific annotations 神奇地出现在我们的 EC2 节点上,但我没有节点元数据在我面前给你更具体的例子