Taints og tolerations
Hindre at Pods planlegges på bestemte noder ved hjelp av taints, og la enkelte Pods tolerere dem.
Taints og tolerations er en gratis leksjon i Grunnleggende Kubernetes på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Grunnleggende Kubernetes, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Grunnleggende Kubernetes inneholder totalt 4 leksjoner.
Hva er Taints?
Se for Dem at De har spesielle noder i Kubernetes-klyngen, kanskje med bestemt maskinvare som GPU-er, eller noder som er reservert for bestemte arbeidsbelastninger. De vil vel ikke at hvilken som helst Pod skal plasseres der?
Det er her Taints kommer inn! En Taint er en egenskap som brukes på en node og hindrer Pods i å bli planlagt der, med mindre Pod-ene uttrykkelig «tåler» denne tainten.
Grunner til å bruke Taints
Taints er svært nyttige for å styre hvor Pods kjører:
- Dedikerte noder: Reserver noder for bestemte team eller applikasjoner.
- Spesialisert maskinvare: Isoler noder med GPU-er eller høytytende SSD-er for Pods som trenger dem.
- Vedlikehold: Marker en node for vedlikehold, slik at nye Pods midlertidig ikke blir planlagt der.
Slik fungerer Taints
Tenk på en Taint som et «adgang forbudt»-skilt på en node. En Pod kan bare ignorere dette skiltet hvis den har en matchende «tillatelse» kalt en Toleration.
En Taint består av en nøkkel, en verdi og en effekt. For eksempel: key=value:effect.
Forstå effektene til Taints
Delen «effekt» i en Taint forteller Kubernetes hva som skal gjøres med Pods som ikke tolererer den. Det finnes tre hovedeffekter:
NoSchedulePreferNoScheduleNoExecute
La oss se på hver av dem.
Taint-effekt: NoSchedule
Effekten NoSchedule er den strengeste. Hvis en node har en Taint med NoSchedule, blir ingen Pod planlagt på noden med mindre den har en matchende toleration.
Pods som allerede kjører på noden, påvirkes IKKE av en ny Taint med NoSchedule.
Taint-effekt: PreferNoSchedule
PreferNoSchedule er en «myk» variant av NoSchedule. Kubernetes vil så langt det er mulig unngå å planlegge Pods på en node med Taint, men dette er ikke et absolutt krav.
Hvis det ikke finnes andre egnede noder, kan en Pod likevel bli planlagt på en node med Taint-en PreferNoSchedule, selv uten en toleration.
Taint-effekt: NoExecute
Effekten NoExecute er unik fordi den påvirker Pods som *allerede kjører*. Hvis en node har en Taint med NoExecute:
- Pods uten en matchende toleration blir *umiddelbart fjernet*.
- Nye Pods uten en matchende toleration kan ikke planlegges.
Dette brukes ofte til å tømme noder eller håndtere nodefeil.
Introduksjon til Tolerations
Mens Taints brukes på noder, brukes Tolerations på Pods. En toleration i en Pod gjør at den kan planlegges på en node som har en matchende Taint.
Uten en matchende toleration kan en Pod ikke planlegges på en node med Taint, eller foretrekker å ikke bli planlagt der.
Tolerations i Pod-manifestfiler
De definerer tolerations i YAML-manifestet til en Pod, under delen spec. Slik tolererer en Pod en Taint med 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"Slik samsvarer Taints og Tolerations
For at en Pod skal kunne planlegges på en node med Taint, må toleration-en samsvare med nodens Taint. Samsvaret omfatter:
- Nøkkel: Må være den samme.
- Verdi: Må være den samme hvis
operator: Equal. - Effekt: Må være den samme.
- Operator: Kan være
EqualellerExists(som betyr en hvilken som helst verdi for nøkkelen).
En spesiell toleration, key: "" operator: Exists, tolererer *alle* Taints.
Hurtigsjekk: Taints
En node har Taint-en env=production:NoSchedule. Hvilken Pod-konfigurasjon gjør at den kan planlegges på denne noden?
Oppsummering: Taints og Tolerations
De har lært om Taints og Tolerations!
- Taints brukes på noder for å holde Pods borte.
- Tolerations brukes på Pods for å la dem bli planlagt på noder med Taints.
- De viktigste Taint-effektene er
NoSchedule,PreferNoScheduleogNoExecute. - Tolerations må samsvare med Taint-ens nøkkel, verdi og effekt for at en Pod skal kunne planlegges.
Disse verktøyene gir Dem detaljert kontroll over plasseringen av Pods!
Lær deg Grunnleggende Kubernetes med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Taints og tolerations» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Grunnleggende Kubernetes, inkludert «Taints og tolerations», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Grunnleggende Kubernetes inneholder totalt 4 leksjoner.
Hva lærer jeg i «Taints og tolerations»?
Hindre at Pods planlegges på bestemte noder ved hjelp av taints, og la enkelte Pods tolerere dem. Du øver på Grunnleggende Kubernetes med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Grunnleggende Kubernetes?
Ingen tidligere erfaring er nødvendig. Grunnleggende Kubernetes på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Taints og tolerations»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Grunnleggende Kubernetes-leksjonen?
Ja. Alle Grunnleggende Kubernetes-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Ressursforespørsler og -grenser
- Nodevelgere og affinitet
- Taints og tolerations
- Pod-prioritet og preemption