De basis van Kubernetes · Les

Taints en tolerations

Voorkom dat Pods op specifieke nodes worden gepland met taints en laat bepaalde Pods deze tolereren.

Les 3 van 412 stappen

Taints en tolerations is een gratis De basis van Kubernetes-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject De basis van Kubernetes. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus De basis van Kubernetes bevat in totaal 4 lessen.

Wat zijn taints?

Stel dat je speciale nodes in je Kubernetes-cluster hebt, bijvoorbeeld met specifieke hardware zoals GPU's, of nodes die voor bepaalde workloads zijn gereserveerd. Je wilt toch niet dat zomaar elke Pod daar terechtkomt?

Daar komen taints van pas! Een taint is een eigenschap die op een node wordt toegepast en voorkomt dat Pods daarop worden gepland, tenzij die Pods expliciet aangeven dat ze de taint "tolereren".

Redenen om taints te gebruiken

Taints zijn bijzonder nuttig om te beheren waar Pods worden uitgevoerd:

  • Toegewijde nodes: reserveer nodes voor specifieke teams of applicaties.
  • Speciale hardware: isoleer nodes met GPU's of krachtige SSD's voor Pods die deze nodig hebben.
  • Onderhoud: markeer een node voor onderhoud, zodat er tijdelijk geen nieuwe Pods op worden gepland.

Hoe taints werken

Zie een taint als een bord met "verboden toegang" op een node. Een Pod kan dit bord alleen negeren als deze een bijbehorende "vergunning" heeft die toleration heet.

Een taint bestaat uit een sleutel, een waarde en een effect. Bijvoorbeeld: key=value:effect.

Taint-effecten begrijpen

Het onderdeel "effect" van een taint vertelt Kubernetes wat het moet doen met Pods die de taint niet tolereren. Er zijn drie belangrijke effecten:

  • NoSchedule
  • PreferNoSchedule
  • NoExecute

We bekijken ze elk afzonderlijk.

Taint-effect: NoSchedule

Het effect NoSchedule is het strengste. Als een node een taint met NoSchedule heeft, wordt geen enkele Pod op die node gepland tenzij deze een bijbehorende toleration heeft.

Bestaande Pods die al op de node worden uitgevoerd, worden NIET beïnvloed door een nieuwe taint met NoSchedule.

Taint-effect: PreferNoSchedule

PreferNoSchedule is een "zachte" versie van NoSchedule. Kubernetes probeert zo goed mogelijk te voorkomen dat Pods op een node met een taint worden gepland, maar het is geen harde vereiste.

Als er geen andere geschikte nodes zijn, kan een Pod toch op een node met PreferNoSchedule worden gepland, zelfs zonder toleration.

Taint-effect: NoExecute

Het effect NoExecute is uniek omdat het van invloed is op *al uitgevoerde* Pods. Als een node een taint met NoExecute heeft:

  • Pods zonder een bijbehorende toleration worden *onmiddellijk verwijderd*.
  • Nieuwe Pods zonder een bijbehorende toleration kunnen niet worden gepland.

Dit wordt vaak gebruikt om nodes leeg te maken of nodefouten af te handelen.

Kennismaken met tolerations

Terwijl taints op nodes worden toegepast, worden tolerations op Pods toegepast. Met de toleration van een Pod kan deze worden gepland op een node met een bijbehorende taint.

Zonder een bijbehorende toleration kan een Pod niet worden gepland op een node met een taint, of wordt dat liever vermeden.

Tolerations in Pod-manifesten

Je definieert tolerations in het YAML-manifest van een Pod, onder de sectie spec. Zo tolereert een Pod een taint met key=value:NoSchedule:

apiVersion: v1
kind: Pod
metadata:
  name: my-tolerated-pod
spec:
  containers:
  - name: nginx
    image: nginx
  tolerations:
  - key: "special-purpose"
    operator: "Equal"
    value: "gpu"
    effect: "NoSchedule"

Overeenkomst tussen taints en tolerations

Om een Pod op een node met een taint te kunnen plannen, moet de toleration van de Pod overeenkomen met de taint van de node. Bij de overeenkomst gaat het om:

  • Sleutel: moet hetzelfde zijn.
  • Waarde: moet hetzelfde zijn als operator: Equal wordt gebruikt.
  • Effect: moet hetzelfde zijn.
  • Operator: kan Equal of Exists zijn (wat betekent: elke waarde voor de sleutel).

Een speciale toleration key: "" operator: Exists tolereert *elke* taint.

Snelle controle: taints

Een node heeft de taint env=production:NoSchedule. Welke Pod-configuratie zorgt ervoor dat deze op die node kan worden gepland?

Samenvatting: taints en tolerations

Je hebt geleerd over taints en tolerations!

  • Taints worden op nodes toegepast om Pods te weren.
  • Tolerations worden op Pods toegepast om ervoor te zorgen dat ze op nodes met taints kunnen worden gepland.
  • De belangrijkste taint-effecten zijn NoSchedule, PreferNoSchedule en NoExecute.
  • Tolerations moeten overeenkomen met de sleutel, waarde en het effect van de taint om een Pod te kunnen plannen.

Deze hulpmiddelen geven je zeer nauwkeurige controle over de plaatsing van Pods!

Gratis beginnen

Leer De basis van Kubernetes met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Taints en tolerations” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad De basis van Kubernetes, waaronder “Taints en tolerations”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus De basis van Kubernetes bevat in totaal 4 lessen.

Wat leer ik in “Taints en tolerations”?

Voorkom dat Pods op specifieke nodes worden gepland met taints en laat bepaalde Pods deze tolereren. Je oefent met De basis van Kubernetes door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met De basis van Kubernetes te beginnen?

Ervaring vooraf is niet nodig. De basis van Kubernetes op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Taints en tolerations”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over De basis van Kubernetes?

Ja. Elke les over De basis van Kubernetes bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Resourceverzoeken en -limieten
  2. Nodeselectors en affinity
  3. Taints en tolerations
  4. Pod-prioriteit en preëmptie
← Terug naar De basis van Kubernetes