Sobes.tech
Senior

Jak popsat pravidla pro umístění podů na konkrétní uzly?

sobes.tech AI

Odpověď od AI

Pro nasazení podů na konkrétních uzlech v Kubernetes se používají nodeSelector, node affinity a taints a tolerations.

  • nodeSelector — nejjednodušší způsob, kdy v manifestu podu je uveden klíč-hodnota odpovídající štítku uzlu. Například:
spec:
  nodeSelector:
    disktype: ssd
  • Node affinity — flexibilnější a výkonnější mechanismus, který umožňuje nastavovat pravidla s operátory (In, NotIn, Exists atd.) a preferencemi (preferredDuringSchedulingIgnoredDuringExecution). Příklad:
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: disktype
            operator: In
            values:
            - ssd
  • Taints a tolerations — umožňují "odstrašit" pody od uzlů, pokud mají taint a pod nemá odpovídající toleranci.

Pro umístění podu na konkrétní uzly je třeba:

  1. Přidat potřebné štítky (labels) na uzly.
  2. V manifestu podu uvést nodeSelector nebo node affinity s těmito štítky.
  3. Použít taints a tolerations, pokud je potřeba přesnější kontrola.

Toto umožňuje flexibilně řídit umístění podů na uzlech.