Resource Quotas och Limit Ranges
Förhindra problem med störande grannar och skenande arbetslaster genom att tillämpa ResourceQuotas på namespace-nivå och LimitRanges per Pod.
Resource Quotas och Limit Ranges är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Skyddsräcken för delade kluster
I ett delat kluster kan ett team av misstag förbruka alla resurser. ResourceQuotas och LimitRanges är skyddsräcken som upprätthåller rättvisa mellan namespaces och förhindrar avbrott.
Vad är en ResourceQuota?
En ResourceQuota begränsar de totala resurser som ett namespace får förbruka: CPU, minne och antal objekt som Pods eller Services.
En beräkningskvot
Den här kvoten begränsar de totala requests och limits för alla Pods i namespacet.
apiVersion: v1
kind: ResourceQuota
metadata:
name: team-compute
namespace: team-a
spec:
hard:
requests.cpu: '4'
requests.memory: 8Gi
limits.cpu: '8'
limits.memory: 16GiKvoter för antal objekt
Kvoter kan också begränsa hur många objekt av varje typ som får finnas, vilket förhindrar oavsiktlig tillväxt.
spec:
hard:
pods: '20'
services: '5'
persistentvolumeclaims: '10'Kvotens tillämpningsregel
När en ResourceQuota för beräkningsresurser har angetts måste varje Pod deklarera requests och limits, annars avvisas den. Kvoten kan inte hantera obegränsade Pods.
Kontrollera kvotanvändning
Inspektera hur stor del av en kvot som används vid en given tidpunkt.
kubectl describe resourcequota team-compute -n team-a
# Resource Used Hard
# requests.cpu 2 4
# requests.memory 3Gi 8GiVad är en LimitRange?
En LimitRange tillämpar standardvärden och gränser per objekt inom ett namespace, så att enskilda Pods begränsas även om en utvecklare glömmer att ange värden.
Standardvärden och gränser
En LimitRange kan lägga till standardvärden för requests/limits och tillämpa min/max för varje container.
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: 1GiSå fungerar de tillsammans
LimitRange fyller i standardvärden för varje container; ResourceQuota summerar sedan allt mot namespace-gränsen. Tillsammans säkerställer de både rimlig storlek per Pod och en rättvis totalsumma för namespace.
Felsöka avvisanden
Om en Pod avvisas anger felet vilken policy som orsakade det. Läs meddelandet noggrant: det visar om Ni överskred kvoten eller bröt mot en gräns i LimitRange.
# exceeded quota: team-compute, requested: requests.cpu=2, used: 3, limited: 4
# maximum cpu usage per Container is 2, but limit is 4Tips för produktion
- Ange en LimitRange så att bortglömda requests inte gör att kvoten överskrids
- Dimensionera kvoter utifrån faktisk användning och lämna utrymme för toppar
- Granska användningen regelbundet och justera när teamen växer
Snabbkontroll
Testa er förståelse av skyddsräcken för namespace.
Sammanfattning
Ni har lärt er att upprätthålla rättvisa med ResourceQuotas (namespace-omfattande gränser för beräkningsresurser och antal objekt) och LimitRanges (standardvärden och gränser per container). Tillsammans förhindrar de problem med bullriga grannar och håller delade kluster stabila, vilket är en central bästa praxis i produktion.
Lär dig DevOps-bootcamp med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 142
- Lektioner
- 568
Vanliga frågor
Är lektionen ”Resource Quotas och Limit Ranges” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Resource Quotas och Limit Ranges”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Vad lär jag mig i ”Resource Quotas och Limit Ranges”?
Förhindra problem med störande grannar och skenande arbetslaster genom att tillämpa ResourceQuotas på namespace-nivå och LimitRanges per Pod. Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?
Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Resource Quotas och Limit Ranges”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?
Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Diagnostisera vanliga problem
- Felsöka Pods och Services
- Bästa praxis och tips för produktion
- Resource Quotas och Limit Ranges