Resourceverzoeken en -limieten
Definieer CPU- en geheugenverzoeken en -limieten voor Pods om efficiënte resourcetoewijzing te garanderen en uitputting van resources te voorkomen.
Resourceverzoeken en -limieten is een gratis DevOps-bootcamp-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject DevOps-bootcamp. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus DevOps-bootcamp bevat in totaal 4 lessen.
Resourcebehoeften in Kubernetes
Net als elke applicatie hebben je Pods resources nodig om te kunnen werken. Kubernetes helpt deze resources efficiënt te beheren met Resource Requests en Resource Limits.
Deze instellingen vertellen Kubernetes hoeveel CPU en geheugen je Pods nodig hebben en hoeveel ze mogen gebruiken. Zo wordt een eerlijke verdeling van resources gegarandeerd.
CPU-aanvragen: CPU garanderen
Een CPU Request vertelt Kubernetes hoeveel CPU je Pod minimaal nodig heeft om goed te kunnen werken. Het is een garantie!
- Kubernetes gebruikt aanvragen om Pods in te plannen op nodes met voldoende beschikbare resources.
- Als een node niet genoeg CPU heeft voor de aanvraag, wordt de Pod daar niet ingepland.
- Dit helpt voorkomen dat je kritieke applicaties zonder resources komen te zitten.
CPU-eenheden en voorbeeld van een aanvraag
CPU wordt gemeten in 'cores' of 'millicores' (m). 1000m staat gelijk aan 1 CPU-core. 500m is dus een halve core.
Zo vraag je 0,5 CPU-core aan in een Pod-definitie:
apiVersion: v1
kind: Pod
metadata:
name: cpu-request-pod
spec:
containers:
- name: my-container
image: nginx
resources:
requests:
cpu: "500m"CPU-limieten: overmatig gebruik voorkomen
Een CPU Limit stelt de maximale hoeveelheid CPU in die een Pod mag gebruiken. Het is een bovengrens.
- Als een Pod meer CPU probeert te gebruiken dan de limiet, zal Kubernetes de Pod afremmen.
- Dit betekent dat het CPU-gebruik van de Pod wordt beperkt, zodat deze niet alle resources van andere Pods op dezelfde node opeist.
CPU-limiet in de praktijk
Hier is een voorbeeld van het instellen van een CPU-limiet. Als deze Pod meer dan 1 CPU-core probeert te gebruiken, wordt deze afgeremd. Dat betekent dat de prestaties worden beperkt.
apiVersion: v1
kind: Pod
metadata:
name: cpu-limit-pod
spec:
containers:
- name: my-container
image: nginx
resources:
limits:
cpu: "1"Geheugenaanvragen: RAM garanderen
Net als bij CPU geeft een Memory Request aan hoeveel RAM je Pod minimaal nodig heeft om te werken.
- Kubernetes gebruikt dit om een node met voldoende vrij geheugen voor je Pod te vinden.
- Als het geheugen op een node opraakt, worden Pods zonder aanvragen vaak als eerste beëindigd (verwijderd) om ruimte vrij te maken.
Geheugeneenheden en voorbeeld van een aanvraag
Geheugen wordt gemeten in bytes. Veelgebruikte eenheden zijn Mi (mebibytes) en Gi (gibibytes).
100Mi is 100 mebibytes. Zo vraag je 256 MiB geheugen aan:
apiVersion: v1
kind: Pod
metadata:
name: mem-request-pod
spec:
containers:
- name: my-container
image: nginx
resources:
requests:
memory: "256Mi"Geheugenlimieten: OOM voorkomen
Een geheugenlimiet bepaalt hoeveel geheugen een Pod maximaal mag gebruiken.
- Als een Pod zijn geheugenlimiet overschrijdt, wordt deze onmiddellijk door het besturingssysteem beëindigd met een foutmelding 'Out Of Memory' (OOM). Dit wordt vaak weergegeven als 'OOMKilled'.
- Zo voorkom je dat één op hol geslagen Pod al het geheugen van een node gebruikt en de hele node laat vastlopen.
Geheugenlimiet in actie
Deze Pod heeft een geheugenlimiet van 512 MiB. Als deze meer probeert te gebruiken, wordt hij beëindigd (OOMKilled) om andere workloads en de node te beschermen.
apiVersion: v1
kind: Pod
metadata:
name: mem-limit-pod
spec:
containers:
- name: my-container
image: nginx
resources:
limits:
memory: "512Mi"Aanbevolen werkwijzen: aanvragen en limieten
Het is een aanbevolen werkwijze om voor al je Pods zowel aanvragen als limieten te definiëren. Dit zorgt voor stabiliteit en voorspelbaarheid in je cluster.
- Aanvragen zorgen ervoor dat je Pods de minimale resources krijgen die nodig zijn voor planning.
- Limieten voorkomen dat andere Pods en de node zelf geen resources meer hebben.
Hier volgt een compleet voorbeeld:
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"Resourcecontrole
Je hebt een Pod gedefinieerd met een CPU-aanvraag van 200m en een CPU-limiet van 1 (oftewel 1000m).
Wat gebeurt er als deze Pod 1,5 CPU-kernen probeert te gebruiken?
Samenvatting: resourcebeheer
In deze les hebben we geleerd over resourceaanvragen en resourcelimieten in Kubernetes.
- Aanvragen (CPU en geheugen) garanderen minimale resources voor het plannen van Pods.
- Limieten (CPU en geheugen) begrenzen het maximale gebruik om concurrentie om resources te voorkomen.
- Het overschrijden van CPU-limieten leidt tot afknijpen; het overschrijden van geheugenlimieten leidt tot beëindiging (OOMKilled).
- Definieer altijd zowel aanvragen als limieten voor stabiele en voorspelbare prestaties van je applicatie!
Leer DevOps-bootcamp met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 142
- Lessen
- 568
Veelgestelde vragen
Is de les “Resourceverzoeken en -limieten” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad DevOps-bootcamp, waaronder “Resourceverzoeken en -limieten”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus DevOps-bootcamp bevat in totaal 4 lessen.
Wat leer ik in “Resourceverzoeken en -limieten”?
Definieer CPU- en geheugenverzoeken en -limieten voor Pods om efficiënte resourcetoewijzing te garanderen en uitputting van resources te voorkomen. Je oefent met DevOps-bootcamp door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met DevOps-bootcamp te beginnen?
Ervaring vooraf is niet nodig. DevOps-bootcamp op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Resourceverzoeken en -limieten”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over DevOps-bootcamp?
Ja. Elke les over DevOps-bootcamp bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Resourceverzoeken en -limieten
- Nodeselectors en affinity
- Taints en tolerations
- Pod-prioriteit en preëmptie