Skip to content

Jak dodać Toleration do Poda?

Aby dodać Toleration do Poda, który ma być uruchomiony na Node z Taint należy w sekcji spec.tolerations skonfigurować pola: - key - klucz określa jaki jest klucz określony w Taintcie węzła na którym ma być uruchomiony Pod - value - wartość określa wartość klucza tainta dla węzła, która jest zdefiniowana - operator - operator porównania - Equal - klucz i wartość muszą się zgadzać - Exists - tylko sprawdzany klucz - effect - efekt Tainta

Wartości te wszystkie muszą być dopasowane do węzła (key, value, effect).

Warning

effect musi dokładnie pasować, nie będzie tak, że Pod będzie na effect: NoSchedule, a Node ma effect: NoExecute

Przykładowy Pod z Toleration

Zdefiniowanie Taint na węźle

kubectl taint nodes k8s-node-01 app=frontend:NoSchedule

Oznacza to, że Pody tylko z: key = app value = frontend effect = NoSchedule operator = Equal

będą działać na tym węźle k8s-node-01! Na innych węzłach te Pody też, ale inne pody na węźle bez Toleration tego samego już nie zadziałają!

Definicja Poda która zostanie uruchomiona na poprzednio zdefiniowanym węźle

apiVersion: v1
kind: Pod
metadata:
  name: web-app
spec:
  containers:
    - name: web-container
      image: nginx
  tolerations:
    - key: "app"
      value: "frontend"
      operator: "Equal"
      effect: "NoSchedule"