Как объяснил здесь , вы можете использовать порты и допуски, чтобы гарантировать, что некоторые модули не будут запланированы на узлах с графическими процессорами.
Все узлы с графическим процессором могут быть испорчены следующим образом:
kubectl taint nodes <nodename> hasgpu=true:NoSchedule
Теперь добавьте следующее в спецификации модулей - для которых требуется графический процессор. Это гарантирует, что любой модуль, не имеющий этого допуска, не попадет в экземпляр с подключенным графическим процессором.
tolerations:
- key: "hasgpu"
operator: "Equal"
value: "true"
effect: "NoSchedule"
Вы можете ознакомиться с подробным объяснением и примерами порчи и терпимости в этом блоге
Хотя добавление допусков в YAML-файле не так уж чисто, и вы можете использовать контроллер допуска для динамического добавления допусков с помощью контроллера допуска. Это добавит допуски к модулям, которые запрашивают определенные ресурсы, такие как GPU. Вы можете найти более подробную информацию здесь , это решение элегантно, но требует больше работы.