Sobes.tech
Назад к вопросам
Middle — Middle+
72

Какими способами можно предотвратить автоматическое развертывание pod на определённой ноде Kubernetes?

Ответ от нейросети

sobes.tech AI

Чтобы предотвратить автоматическое развертывание Pod на определённой ноде в Kubernetes, можно использовать несколько подходов:

  1. Taints и Tolerations

    • Добавить taint к ноде, который будет «отталкивать» Pod без соответствующей toleration.
    • Пример:
      kubectl taint nodes <node-name> key=value:NoSchedule
      
    • Pod без toleration с таким ключом не будет запущен на этой ноде.
  2. Node Affinity (отрицательная)

    • В манифесте Pod указать nodeAffinity с requiredDuringSchedulingIgnoredDuringExecution, исключающим нужную ноду по лейблу.
    • Пример:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: kubernetes.io/hostname
                operator: NotIn
                values:
                - <node-name>
      
  3. Node Selector

    • Не назначать Pod на ноду, явно не указывая нужный лейбл.
  4. Admission Controllers или Webhook

    • Более сложный способ — настроить webhook, который будет отклонять создание Pod на определённых нодах.

Наиболее распространённый и простой способ — использование taints и tolerations, так как он явно запрещает размещение Pod без соответствующей настройки.