Kubernetesin perusteet · Oppitunti

Taintit ja toleraatiot

Estäkää Podien sijoittaminen tietyille solmuille taintien avulla ja sallikaa valittujen Podien sietää niitä.

Oppitunti 3/412 vaihetta

Taintit ja toleraatiot on ilmainen Kubernetesin perusteet-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Kubernetesin perusteet-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Kubernetesin perusteet-kurssilla on yhteensä 4 oppituntia.

Mitä Taintit ovat?

Kuvittele, että Kubernetes-klusterissasi on erityisiä solmuja, joissa on esimerkiksi GPU-laitteistoa tai jotka on varattu tiettyjä työkuormia varten. Et haluaisi minkä tahansa Podin sijoittuvan niihin, vai mitä?

Tässä Taintit tulevat avuksi! Taint on solmuun liitetty ominaisuus, joka estää Podien ajoittamisen siihen, elleivät kyseiset Podit erikseen ”siedä” tätä Taintia.

Syitä käyttää Tainteja

Taintit ovat erittäin hyödyllisiä Podien sijoittamisen hallinnassa:

  • Dedikoidut solmut: Varaa solmuja tietyille tiimeille tai sovelluksille.
  • Erityislaitteisto: Eristä GPU-laitteita tai tehokkaita SSD-levyjä sisältävät solmut Podeille, jotka tarvitsevat niitä.
  • Ylläpito: Merkitse solmu ylläpidettäväksi ja estä uusien Podien ajoittaminen siihen tilapäisesti.

Näin Taintit toimivat

Ajattele Taintia solmussa olevana ”asiattomilta pääsy kielletty” -kylttinä. Pod voi ohittaa tämän kyltin vain, jos sillä on vastaava ”lupa”, jota kutsutaan Tolerationiksi.

Taint koostuu avaimesta, arvosta ja vaikutuksesta. Esimerkiksi: key=value:effect.

Taint-vaikutusten ymmärtäminen

Taintin ”vaikutus” kertoo Kubernetesille, mitä tehdä Podeille, jotka eivät siedä sitä. Päävaikutuksia on kolme:

  • NoSchedule
  • PreferNoSchedule
  • NoExecute

Tarkastellaan seuraavaksi jokaista niistä.

Taint-vaikutus: NoSchedule

NoSchedule-vaikutus on tiukin. Jos solmulla on NoSchedule-vaikutuksen sisältävä Taint, siihen ei ajoiteta yhtään podia, ellei sillä ole vastaavaa Tolerationia.

Solmussa jo käynnissä olevat Podit EIVÄT vaikutu uudesta NoSchedule-Taintista.

Taint-vaikutus: PreferNoSchedule

PreferNoSchedule on NoSchedule-vaikutuksen ”pehmeä” versio. Kubernetes pyrkii parhaansa mukaan välttämään Podien ajoittamista Taintin sisältävään solmuun, mutta tämä ei ole ehdoton vaatimus.

Jos muita sopivia solmuja ei ole, Pod voidaan silti ajoittaa PreferNoSchedule-Taintin sisältävään solmuun ilman Tolerationia.

Taint-vaikutus: NoExecute

NoExecute-vaikutus on erityinen, koska se vaikuttaa *jo käynnissä oleviin* Podeihin. Jos solmulla on NoExecute-Taint:

  • Podit, joilla ei ole vastaavaa Tolerationia, *häädetään välittömästi*.
  • Uusia Podeja, joilla ei ole vastaavaa Tolerationia, ei voida ajoittaa.

Tätä käytetään usein solmujen tyhjentämiseen tai solmuvikojen käsittelyyn.

Tolerationien esittely

Taintit liitetään solmuihin, kun taas Tolerationit liitetään Podeihin. Podin Toleration sallii sen ajoittamisen solmuun, jossa on vastaava Taint.

Ilman vastaavaa Tolerationia podia ei voida (tai sitä ei yleensä haluta) ajoittaa Taintin sisältävään solmuun.

Tolerationit Pod-manifesteissa

Tolerationit määritetään Podin YAML-manifestissa spec-osion alla. Näin Pod sietää Taintin 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"

Näin Taintit ja Tolerationit vastaavat toisiaan

Jotta Pod voidaan ajoittaa Taintin sisältävään solmuun, sen Tolerationin on vastattava solmun Taintia. Vastaavuus sisältää seuraavat osat:

  • Avain: Sen on oltava sama.
  • Arvo: Sen on oltava sama, jos operator: Equal on käytössä.
  • Vaikutus: Sen on oltava sama.
  • Operaattori: Se voi olla Equal tai Exists (eli avaimen arvo voi olla mikä tahansa).

Erityinen Toleration key: "" operator: Exists sietää *mitä tahansa* Taintia.

Pikatarkistus: Taintit

Solmulla on Taint env=production:NoSchedule. Millainen Podin määritys sallisi sen ajoittamisen tähän solmuun?

Kertaus: Taintit ja Tolerationit

Olet oppinut Tainteista ja Tolerationeista!

  • Taintit liitetään solmuihin Podien torjumiseksi.
  • Tolerationit liitetään Podeihin, jotta ne voidaan ajoittaa Taintin sisältäviin solmuihin.
  • Tärkeimmät Taint-vaikutukset ovat NoSchedule, PreferNoSchedule ja NoExecute.
  • Tolerationien on vastattava Taintin avainta, arvoa ja vaikutusta, jotta Pod voidaan ajoittaa.

Näiden työkalujen avulla Podien sijoittamista voidaan hallita tarkasti!

Aloita maksutta

Opi Kubernetesin perusteet tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Taintit ja toleraatiot” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Kubernetesin perusteet-oppimispolun 3 oppituntia, myös oppitunnin “Taintit ja toleraatiot”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Kubernetesin perusteet-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Taintit ja toleraatiot”?

Estäkää Podien sijoittaminen tietyille solmuille taintien avulla ja sallikaa valittujen Podien sietää niitä. Harjoittelet Kubernetesin perusteet-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Kubernetesin perusteet-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Kubernetesin perusteet-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Taintit ja toleraatiot”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Kubernetesin perusteet-oppitunnilla?

Kyllä. Jokainen Kubernetesin perusteet-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Resurssipyynnöt ja -rajat
  2. Solmuvalitsimet ja affiniteetti
  3. Taintit ja toleraatiot
  4. Podien prioriteetti ja preemptio
← Takaisin: Kubernetesin perusteet