Richieste e limiti delle risorse
Definisca le richieste e i limiti di CPU e memoria per i Pod, così da garantire un'allocazione efficiente delle risorse e prevenirne l'esaurimento.
Richieste e limiti delle risorse è una lezione Kubernetes Basics gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Kubernetes Basics, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Kubernetes Basics include 4 lezioni in totale.
Fabbisogno di risorse in Kubernetes
Come qualsiasi applicazione, anche i Pod necessitano di risorse per funzionare. Kubernetes aiuta a gestire queste risorse in modo efficiente utilizzando Resource Requests e Resource Limits.
Queste impostazioni indicano a Kubernetes quanta CPU e memoria sono necessarie ai Pod e quante risorse possono utilizzare, garantendo una distribuzione equa.
Richieste CPU: garantire la CPU
Una CPU Request indica a Kubernetes la quantità minima di CPU necessaria al Pod per funzionare correttamente. È una garanzia!
- Kubernetes utilizza le richieste per pianificare i Pod sui nodi con risorse disponibili sufficienti.
- Se un nodo non dispone di CPU sufficiente per soddisfare la richiesta, il Pod non verrà pianificato su quel nodo.
- Questo aiuta a prevenire l'esaurimento delle risorse per le applicazioni critiche.
Unità CPU ed esempio di richiesta
La CPU viene misurata in "core" o "millicore" (m). 1000m equivale a 1 core CPU. Quindi, 500m corrisponde a mezzo core.
Ecco come richiedere 0,5 core CPU nella definizione di un Pod:
apiVersion: v1
kind: Pod
metadata:
name: cpu-request-pod
spec:
containers:
- name: my-container
image: nginx
resources:
requests:
cpu: "500m"Limiti CPU: prevenire l'uso eccessivo
Un CPU Limit imposta la quantità massima di CPU che un Pod può utilizzare. È un limite superiore.
- Se un Pod tenta di utilizzare più CPU del limite, Kubernetes lo sottoporrà a throttling.
- Ciò significa che l'utilizzo della CPU del Pod verrà limitato, impedendogli di monopolizzare le risorse degli altri Pod sullo stesso nodo.
Il limite CPU in azione
Ecco un esempio di impostazione di un limite CPU. Se questo Pod tenta di utilizzare più di 1 core CPU, verrà sottoposto a throttling, quindi le sue prestazioni saranno limitate.
apiVersion: v1
kind: Pod
metadata:
name: cpu-limit-pod
spec:
containers:
- name: my-container
image: nginx
resources:
limits:
cpu: "1"Richieste di memoria: garantire la RAM
Analogamente alla CPU, una Memory Request specifica la quantità minima di RAM necessaria al Pod per funzionare.
- Kubernetes utilizza questo valore per trovare un nodo con memoria libera sufficiente per il Pod.
- Se un nodo esaurisce la memoria, i Pod senza richieste sono spesso i primi a essere terminati (evicted) per liberare spazio.
Unità di memoria ed esempio di richiesta
La memoria si misura in byte. Le unità più comuni sono Mi (mebibyte) e Gi (gibibyte).
100Mi corrisponde a 100 mebibyte. Ecco come richiedere 256 MiB di memoria:
apiVersion: v1
kind: Pod
metadata:
name: mem-request-pod
spec:
containers:
- name: my-container
image: nginx
resources:
requests:
memory: "256Mi"Limiti di memoria: evitare gli OOM
Un limite di memoria definisce la quantità massima di memoria che un Pod può consumare.
- Se un Pod supera il proprio limite di memoria, il sistema operativo lo termina immediatamente con un errore "Out Of Memory" (OOM). Questo evento viene spesso visualizzato come "OOMKilled".
- In questo modo si impedisce a un singolo Pod fuori controllo di consumare tutta la memoria del nodo e causare il blocco dell'intero nodo.
Il limite di memoria in azione
Questo Pod ha un limite di memoria di 512 MiB. Se prova a utilizzarne di più, viene terminato (OOMKilled) per proteggere gli altri workload e il nodo.
apiVersion: v1
kind: Pod
metadata:
name: mem-limit-pod
spec:
containers:
- name: my-container
image: nginx
resources:
limits:
memory: "512Mi"Buone pratiche: richieste e limiti
È buona pratica definire sia le richieste sia i limiti per tutti i Pod. Questo garantisce stabilità e prevedibilità al cluster.
- Le richieste garantiscono ai Pod le risorse minime necessarie per la pianificazione.
- I limiti impediscono che gli altri Pod e il nodo stesso rimangano senza risorse.
Ecco un esempio completo:
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"Verifica delle risorse
È stato definito un Pod con una richiesta di CPU pari a 200m e un limite di CPU pari a 1 (ovvero 1000m).
Che cosa succede se questo Pod prova a utilizzare 1.5 core CPU?
Riepilogo: gestione delle risorse
In questa lezione abbiamo esaminato le richieste di risorse e i limiti di risorse in Kubernetes.
- Le richieste (CPU e memoria) garantiscono le risorse minime per la pianificazione dei Pod.
- I limiti (CPU e memoria) fissano il consumo massimo per evitare la contesa delle risorse.
- Il superamento dei limiti della CPU causa il throttling; il superamento dei limiti di memoria causa la terminazione (OOMKilled).
- Definite sempre sia le richieste sia i limiti per ottenere prestazioni delle applicazioni stabili e prevedibili.
Domande Frequenti
La lezione «Richieste e limiti delle risorse» è gratuita?
Sì — il testo completo di «Richieste e limiti delle risorse» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Kubernetes Basics, passa a CoddyKit PRO. Il corso Kubernetes Basics include 4 lezioni in totale.
Cosa imparerò in «Richieste e limiti delle risorse»?
Definisca le richieste e i limiti di CPU e memoria per i Pod, così da garantire un'allocazione efficiente delle risorse e prevenirne l'esaurimento. Eserciti Kubernetes Basics con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Kubernetes Basics?
Non è richiesta alcuna esperienza precedente. Kubernetes Basics su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Richieste e limiti delle risorse»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Kubernetes Basics?
Sì. Ogni lezione Kubernetes Basics include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Richieste e limiti delle risorse
- Selettori e affinità dei nodi
- Taint e toleration
- Priorità e preemption dei Pod