Kubernetes ::在没有GPU的节点上运行POD

时间:2018-08-28 04:34:01

标签: kubernetes gpu nvidia

我正在使用Kubernetes来协调我的微服务。

在K8S集群中,我只有CPU实例和其他带有GPU的实例。

我想知道如何在没有GPU的情况下强制特定PODS在实例上运行?

谢谢

1 个答案:

答案 0 :(得分:2)

explained here一样,您可以使用污点和公差来确保某些Pod不会安排在具有GPU的节点上。

所有带有GPU的节点都可以这样污染:

kubectl taint nodes <nodename> hasgpu=true:NoSchedule

现在将以下内容添加到Pod的规格中-需要GPU。这样可以确保任何不具有此容差的Pod都不会进入连接了GPU的实例。

tolerations:
- key: "hasgpu"
  operator: "Equal"
  value: "true"
  effect: "NoSchedule"

您可以查看有关污点和公差in this blog

的详细说明以及示例

尽管在YAML文件中添加容忍并不是那么干净,您可以使用准入控制器使用准入控制器动态添加容忍。这将为请求特定资源(例如GPU)的Pod添加容差。您可以find more details here,此解决方案很优雅,但是工作相对较多。