Назад к вопросам
Middle — Middle+
72
Какими способами можно предотвратить автоматическое развертывание pod на определённой ноде Kubernetes?
Ответ от нейросети
sobes.tech AI
Чтобы предотвратить автоматическое развертывание Pod на определённой ноде в Kubernetes, можно использовать несколько подходов:
-
Taints и Tolerations
- Добавить taint к ноде, который будет «отталкивать» Pod без соответствующей toleration.
- Пример:
kubectl taint nodes <node-name> key=value:NoSchedule - Pod без toleration с таким ключом не будет запущен на этой ноде.
-
Node Affinity (отрицательная)
- В манифесте Pod указать
nodeAffinityсrequiredDuringSchedulingIgnoredDuringExecution, исключающим нужную ноду по лейблу. - Пример:
affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: NotIn values: - <node-name>
- В манифесте Pod указать
-
Node Selector
- Не назначать Pod на ноду, явно не указывая нужный лейбл.
-
Admission Controllers или Webhook
- Более сложный способ — настроить webhook, который будет отклонять создание Pod на определённых нодах.
Наиболее распространённый и простой способ — использование taints и tolerations, так как он явно запрещает размещение Pod без соответствующей настройки.