Grunnleggende Kubernetes · leksjon

Ressurskvoter og grenseområder

Unngå problemer med støyende naboer og løpske arbeidslaster ved å håndheve ResourceQuotas på navneromsnivå og LimitRanges per Pod.

Leksjon 4 av 413 trinn

Ressurskvoter og grenseområder er en gratis leksjon i Grunnleggende Kubernetes på CoddyKit. Dette er leksjon 4 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.

Sikkerhetsnett for delte clustere

I et delt cluster kan ett team ved et uhell bruke opp alt. ResourceQuotas og LimitRanges fungerer som sikkerhetsnett som sørger for rettferdighet mellom namespaces og hindrer driftsavbrudd.

Hva er en ResourceQuota

En ResourceQuota setter en øvre grense for hvor mye ressurser et namespace kan bruke: CPU, minne og antall objekter som Pods eller Services.

En compute-kvote

Denne kvoten begrenser det totale antallet requests og limits på tvers av alle 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: 16Gi

Kvote for antall objekter

Kvoter kan også begrense hvor mange objekter av hver type som kan finnes, slik at utilsiktet oppblåsing forhindres.

spec:
  hard:
    pods: '20'
    services: '5'
    persistentvolumeclaims: '10'

Regelen for håndheving av kvoter

Når en ResourceQuota for beregningsressurser er angitt, må alle Pod-objekter deklarere requests og limits, ellers blir de avvist. Kvoten kan ikke håndtere Pod-objekter uten grenser.

Kontrollere kvoteforbruk

Se hvor mye av en kvote som er brukt til enhver tid.

kubectl describe resourcequota team-compute -n team-a
# Resource         Used  Hard
# requests.cpu     2     4
# requests.memory  3Gi   8Gi

Hva er en LimitRange?

En LimitRange angir standardverdier og grenser per objekt i et namespace, slik at individuelle Pod-objekter begrenses selv om en utvikler glemmer å angi verdier.

Standardverdier og grenser

En LimitRange kan sette inn standardverdier for requests/limits og håndheve minimums- og maksimumsverdier per 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: 1Gi

Slik fungerer de sammen

LimitRange fyller inn standardverdier for hver container, og ResourceQuota summerer deretter alt opp mot grensen for namespace-et. Sammen sørger de både for fornuftig dimensjonering per Pod og en rettferdig totalsum for namespace-et.

Feilsøking av avvisninger

Hvis en Pod blir avvist, oppgir feilmeldingen hvilken policy som forårsaket problemet. Les den nøye: Den forteller om du overskred kvoten eller brøt en grense i en LimitRange.

# exceeded quota: team-compute, requested: requests.cpu=2, used: 3, limited: 4
# maximum cpu usage per Container is 2, but limit is 4

Tips for produksjon

  • Angi en LimitRange slik at glemte requests ikke bryter kvoten
  • Dimensjoner kvoter ut fra reell bruk, med ekstra kapasitet for topper
  • Gå gjennom forbruket regelmessig, og juster etter hvert som teamene vokser

Hurtigsjekk

Test forståelsen din av begrensningene for namespace.

Oppsummering

Du har lært å håndheve rettferdig ressursfordeling med ResourceQuotas (grenser for beregningsressurser og antall objekter i hele namespace-et) og LimitRanges (standardverdier og grenser per container). Brukt sammen forhindrer de problemer med støyende naboer og holder delte klynger stabile – en viktig anbefalt praksis i produksjon.

Gratis å komme i gang

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 «Ressurskvoter og grenseområder» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Grunnleggende Kubernetes, inkludert «Ressurskvoter og grenseområder», 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 «Ressurskvoter og grenseområder»?

Unngå problemer med støyende naboer og løpske arbeidslaster ved å håndheve ResourceQuotas på navneromsnivå og LimitRanges per Pod. 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 4 av 4.

Hvor lang tid tar leksjonen «Ressurskvoter og grenseområder»?

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

  1. Diagnostisering av vanlige problemer
  2. Feilsøking av Pods og Services
  3. Beste praksis og tips for produksjon
  4. Ressurskvoter og grenseområder
← Tilbake til Grunnleggende Kubernetes