DevOps-bootcamp · Oppitunti

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.

Oppitunti 4/413 vaihetta

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: 16Gi

Objektien 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   8Gi

Mikä 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: 1Gi

Miten 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 4

Tuotantovinkit

  • 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ö.

Aloita maksutta

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

  1. Yleisten ongelmien diagnosointi
  2. Podien ja Servicejen virheenkorjaus
  3. Tuotannon parhaat käytännöt ja vinkit
  4. Resurssikiintiöt ja rajoitusalueet
← Takaisin: DevOps-bootcamp