Возможное решение - создать два пула узлов:
-<default-node-pool> for kube-system pods
-<gpu-node-pool>
Причина, по которой наличие только одного пула узлов не будет работать, заключается в том, что пул узлов не масштабируется до 0, каким-то образом kube-sytem pod'ы должны где-то жить.
Вы можете использовать концепцию node taint , чтобы создать свой пул узлов gpu с этим флагом
- node- taints cost = high: NoSchedule
Затем вы можете применить допуск к подам, как показано ниже
tolerations:
- key: cost
operator: Equal
value: high
effect: NoSchedule
Таким образом вы убедитесь, что ваши поды системы kube не планируются на узлах GPU. Будут некоторые модули kube-system, которые будут работать в пуле узлов независимо от того, потому что у них есть допуск ко всему. должен уменьшаться до 0, сохраняя при этом пул узлов по умолчанию для модулей kube-system.