DevOps-bootcamp · Lektion

Resursbegäranden och gränser

Definiera CPU- och minnesbegäranden samt gränser för Pods för att säkerställa effektiv resursallokering och förhindra resursbrist.

Lektion 1 av 412 steg

Resursbegäranden och gränser är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 1 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.

Resursbehov i Kubernetes

Precis som alla applikationer behöver Era Pods resurser för att köras. Kubernetes hjälper till att hantera dessa resurser effektivt med hjälp av resursbegäranden och resursgränser.

Dessa inställningar talar om för Kubernetes hur mycket CPU och minne Era Pods behöver och hur mycket de får använda, vilket säkerställer en rättvis fördelning av resurser.

CPU-begäranden: garantera CPU

En CPU-begäran talar om för Kubernetes den minsta mängd CPU som Er Pod behöver för att köras utan problem. Det är en garanti!

  • Kubernetes använder begäranden för att schemalägga Pods på noder med tillräckligt mycket tillgängliga resurser.
  • Om en nod inte har tillräckligt med CPU för begäran schemaläggs Podden inte där.
  • Detta hjälper till att förhindra resursbrist för Era kritiska applikationer.

CPU-enheter och exempel på begäran

CPU mäts i "kärnor" eller "millicores" (m). 1000m motsvarar 1 CPU-kärna. Alltså är 500m en halv kärna.

Så här begär Ni 0,5 CPU-kärnor i en Pod-definition:

apiVersion: v1
kind: Pod
metadata:
  name: cpu-request-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      requests:
        cpu: "500m"

CPU-gränser: förhindra överanvändning

En CPU-gräns anger den största mängd CPU som en Pod får använda. Det är ett tak.

  • Om en Pod försöker använda mer CPU än sin gräns kommer Kubernetes att strypa den.
  • Det innebär att Poddens CPU-användning begränsas, så att den inte tar resurser från andra Pods på samma nod.

CPU-gräns i praktiken

Här är ett exempel på hur Ni anger en CPU-gräns. Om denna Pod försöker använda mer än 1 CPU-kärna kommer den att strypas, vilket innebär att dess prestanda begränsas.

apiVersion: v1
kind: Pod
metadata:
  name: cpu-limit-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      limits:
        cpu: "1"

Minnesbegäranden: garantera RAM

Precis som för CPU anger en minnesbegäran den minsta mängd RAM som Er Pod behöver för att fungera.

  • Kubernetes använder detta för att hitta en nod med tillräckligt mycket ledigt minne för Er Pod.
  • Om en nod får slut på minne avslutas (evicted) Pods utan begäranden ofta först för att frigöra utrymme.

Minnesenheter och exempel på begäran

Minne mäts i byte. Vanliga enheter är Mi (mebibyte) och Gi (gibibyte).

100Mi är 100 mebibyte. Så här begär du 256 MiB minne:

apiVersion: v1
kind: Pod
metadata:
  name: mem-request-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      requests:
        memory: "256Mi"

Minnesgränser: Undvik OOM

En minnesgräns anger den maximala mängd minne som en Pod får använda.

  • Om en Pod överskrider sin minnesgräns avslutas den omedelbart av operativsystemet med felet ”Out Of Memory” (OOM). Detta visas ofta som ”OOMKilled”.
  • Det förhindrar att en enda Pod som skenar förbrukar allt minne på noden och får hela noden att krascha.

Minnesgräns i praktiken

Den här Podden har en minnesgräns på 512 MiB. Om den försöker använda mer avslutas den (OOMKilled) för att skydda andra arbetsbelastningar och noden.

apiVersion: v1
kind: Pod
metadata:
  name: mem-limit-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      limits:
        memory: "512Mi"

Bästa praxis: Requests och limits

Det är bästa praxis att ange både requests och limits för alla dina Pods. Det ger stabilitet och förutsägbarhet i klustret.

  • Requests säkerställer att dina Pods får de minsta resurser som krävs för schemaläggning.
  • Limits förhindrar att andra Pods och själva noden blir utan resurser.

Här är ett komplett exempel:

apiVersion: v1
kind: Pod
metadata:
  name: full-resource-pod
spec:
  containers:
  - name: my-app
    image: my-registry/my-app:1.0
    resources:
      requests:
        cpu: "200m"
        memory: "128Mi"
      limits:
        cpu: "500m"
        memory: "256Mi"

Resurskontroll

Du har definierat en Pod med en CPU request på 200m och en CPU limit på 1 (vilket är 1000m).

Vad händer om den här Podden försöker använda 1.5 CPU-kärnor?

Sammanfattning: Resurshantering

I den här lektionen har du lärt dig om Resource Requests och Resource Limits i Kubernetes.

  • Requests (CPU och minne) garanterar minsta resurser vid schemaläggning av Pods.
  • Limits (CPU och minne) begränsar den maximala användningen för att förhindra resurskonflikter.
  • Om CPU-gränser överskrids uppstår strypning; om minnesgränser överskrids avslutas Podden (OOMKilled).
  • Ange alltid både requests och limits för stabil och förutsägbar prestanda hos applikationer!
Gratis att börja

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 ”Resursbegäranden och gränser” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Resursbegäranden och gränser”, 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 ”Resursbegäranden och gränser”?

Definiera CPU- och minnesbegäranden samt gränser för Pods för att säkerställa effektiv resursallokering och förhindra resursbrist. 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 1 av 4.

Hur lång tid tar lektionen ”Resursbegäranden och gränser”?

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

  1. Resursbegäranden och gränser
  2. Nodväljare och affinitet
  3. Taints och tolerationer
  4. Pod-prioritet och preemption
← Tillbaka till DevOps-bootcamp