Resurssikiintiöt ja rajoitusalueet
Estäkää häiritsevien naapureiden aiheuttamat ongelmat ja hallitsemattomasti kasvavat workloadit ottamalla käyttöön nimiavaruustason ResourceQuotat ja Pod-kohtaiset LimitRanget.
Resurssikiintiöt ja rajoitusalueet on ilmainen DevOps-bootcamp-oppitunti CoddyKitissä. Tämä on oppitunti 4/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 DevOps-bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.
Jaettujen klustereiden suojakaiteet
Jaetussa klusterissa yksi tiimi voi vahingossa kuluttaa kaikki resurssit. ResourceQuota- ja LimitRange-objektit ovat suojakaiteita, jotka ylläpitävät nimiavaruuksien tasapuolisuutta ja estävät käyttökatkoja.
Mikä on ResourceQuota?
ResourceQuota rajoittaa resurssien kokonaismäärää, jonka nimiavaruus voi käyttää: suorittimen, muistin ja objektien, kuten Podien tai Services-palveluiden, määrää.
Laskentaresurssikiintiö
Tämä kiintiö rajoittaa kaikkien nimiavaruuden Podien yhteenlaskettuja resurssipyyntöjä ja -rajoja.
apiVersion: v1
kind: ResourceQuota
metadata:
name: team-compute
namespace: team-a
spec:
hard:
requests.cpu: '4'
requests.memory: 8Gi
limits.cpu: '8'
limits.memory: 16GiObjektien määräkiintiöt
Kiintiöillä voidaan myös rajoittaa kunkin objektityypin määrää, mikä estää objektien tahattoman hallitsemattoman lisääntymisen.
spec:
hard:
pods: '20'
services: '5'
persistentvolumeclaims: '10'Kiintiönvalvonnan sääntö
Kun laskentaresursseille on määritetty ResourceQuota, jokaisen Podin on pakko ilmoittaa requests- ja limits-määritykset, tai Pod hylätään. Kiintiö ei voi ottaa huomioon rajoittamattomia Podeja.
Kiintiön käytön tarkistaminen
Tarkistakaa, kuinka paljon kiintiöstä on kulloinkin käytetty.
kubectl describe resourcequota team-compute -n team-a
# Resource Used Hard
# requests.cpu 2 4
# requests.memory 3Gi 8GiMikä on LimitRange?
LimitRange määrittää objektikohtaiset oletusarvot ja rajat namespacessa, joten yksittäisiä Podeja rajoitetaan, vaikka kehittäjä unohtaisi määrittää arvot.
Oletusarvot ja rajat
LimitRange voi lisätä oletusarvoiset requests- ja limits-määritykset sekä valvoa kunkin kontin vähimmäis- ja enimmäisarvoja.
apiVersion: v1
kind: LimitRange
metadata:
name: container-limits
namespace: team-a
spec:
limits:
- type: Container
default:
cpu: 500m
memory: 256Mi
defaultRequest:
cpu: 250m
memory: 128Mi
max:
cpu: '2'
memory: 1GiMiten ne toimivat yhdessä
LimitRange täyttää kunkin kontin oletusarvot, minkä jälkeen ResourceQuota laskee kaikki arvot yhteen ja vertaa summaa namespacen enimmäismäärään. Yhdessä ne varmistavat sekä järkevän Pod-kohtaisen mitoituksen että namespacen kokonaismäärän kohtuullisuuden.
Hylkäysten vianmääritys
Jos Pod hylätään, virheilmoituksessa mainitaan rikottu käytäntö. Lukekaa ilmoitus huolellisesti: se kertoo, ylitittekö kiintiön vai rikoitteko LimitRange-rajaa.
# exceeded quota: team-compute, requested: requests.cpu=2, used: 3, limited: 4
# maximum cpu usage per Container is 2, but limit is 4Tuotantovinkit
- Määrittäkää LimitRange, jotta puuttuvat requests-määritykset eivät riko kiintiötä
- Mitoittakaa kiintiöt todellisen käytön perusteella ja jättäkää varaa kulutuspiikeille
- Tarkistakaa käyttö säännöllisesti ja säätäkää kiintiöitä tiimien kasvaessa
Pikatesti
Testatkaa, miten hyvin ymmärrätte namespacen suojarajoitukset.
Kertaus
Opitte varmistamaan resurssien reilun jaon ResourceQuota-kiintiöillä (namespacen laajuiset laskentaresurssien ja objektimäärien enimmäisrajat) sekä LimitRange-rajoilla (konttikohtaiset oletusarvot ja rajat). Yhdessä käytettyinä ne estävät häiritsevän naapurin ongelmat ja pitävät jaetut klusterit vakaina, mikä on keskeinen tuotantoympäristön hyvä käytäntö.
Opi DevOps-bootcamp 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
- 142
- Oppitunnit
- 568
Usein kysytyt kysymykset
Onko oppitunti ”Resurssikiintiöt ja rajoitusalueet” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa DevOps-bootcamp-oppimispolun 3 oppituntia, myös oppitunnin “Resurssikiintiöt ja rajoitusalueet”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Resurssikiintiöt ja rajoitusalueet”?
Estäkää häiritsevien naapureiden aiheuttamat ongelmat ja hallitsemattomasti kasvavat workloadit ottamalla käyttöön nimiavaruustason ResourceQuotat ja Pod-kohtaiset LimitRanget. Harjoittelet DevOps-bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni DevOps-bootcamp-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin DevOps-bootcamp-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Resurssikiintiöt ja rajoitusalueet”-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ä DevOps-bootcamp-oppitunnilla?
Kyllä. Jokainen DevOps-bootcamp-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
- Yleisten ongelmien diagnosointi
- Podien ja Servicejen virheenkorjaus
- Tuotannon parhaat käytännöt ja vinkit
- Resurssikiintiöt ja rajoitusalueet