Kubernetes · 4 min read · Dec 09, 2025
Limiti delle risorse in Kubernetes

Se il nodo ha abbastanza risorse disponibili, è possibile per un contenitore utilizzare più risorse. Possiamo specificare quanto di ciascuna risorsa un Container ha bisogno. Le risorse comuni da specificare sono CPU e memoria. Quando specifichiamo la richiesta di risorse per i Container in un Pod, lo scheduler decide su quale nodo posizionare il Pod. Quando specifichiamo un limite di risorse per un Container, il kubelet si occupa dei limiti in modo che il contenitore in esecuzione non possa utilizzare più di quel limite che abbiamo impostato.
Ad esempio, se impostiamo una richiesta di memoria di 100 MiB per un contenitore, allora il contenitore può provare a utilizzare più RAM. Ma se impostiamo un limite di memoria di 4GiB per quel Container, il runtime impedisce al contenitore di utilizzare più del limite di risorse configurato.
CPU e memoria sono chiamate risorse di calcolo.
Ogni Container di un Pod può specificare uno o più dei seguenti:
- limiti su cpu
- limiti su memoria
- limiti su hugepages-
- richieste per cpu
- richieste per memoria
- richieste per hugepages-
Per saperne di più sulle risorse in Kubernetes, clicca qui per visitare la documentazione ufficiale di Kubernetes.
In questo articolo, vedremo un esempio di un limite di risorse e richiesta per CPU e Memoria. Utilizzeremo anche il Metric Server. Il Metric Server è un aggregatore di dati sull’uso delle risorse nel cluster e non è distribuito per impostazione predefinita nel cluster. Utilizzeremo questo Metric Server per vedere il consumo di risorse da parte dei pod.
Prerequisiti
- Cluster Kubernetes con almeno 1 nodo worker.
Se vuoi imparare a creare un Cluster Kubernetes, clicca qui. Questa guida ti aiuterà a creare un cluster Kubernetes con 1 Master e 2 Nodi su AWS Ubuntu 18.04 EC2 Instances.
Cosa faremo?
- Limiti delle risorse
Limiti delle Risorse
Prima di procedere e creare pod con requisiti di risorse specificati, installiamo il Metric Server.
Clona il repository Github del Metric Server utilizzando il seguente comando e installalo.
git clone https://github.com/kodekloudhub/kubernetes-metrics-server.gitcd kubernetes-metrics-server/Crea il Metric Server utilizzando i file oggetto.
kubectl create -f .
Aspetta un po’ di tempo per far iniziare il Metric Server. Dopo un po’, puoi eseguire il seguente comando per monitorare i nodi del cluster.
kubectl top nodeOra, crea un file di definizione del pod con il seguente contenuto che contiene richiesta e limite di memoria.
vim my-pod-with-memory.ymlapiVersion: v1
kind: Pod
metadata:
name: my-pod-memory-demo
spec:
containers:
- name: my-container-memory-demo
image: polinux/stress
resources:
limits:
memory: "50Mi"
requests:
memory: "20Mi"
command: ["stress"]
args: ["--vm", "1", "--vm-bytes", "30M", "--vm-hang", "1"]
Puoi trovare la proprietà “resources” in cui abbiamo specificato il limite di memoria come 50Mi e la richiesta di memoria come 20Mi.
Controlla i pod esistenti con il namespace predefinito nel cluster.
kubectl get pods #Ottieni pod dal namespace predefinitoCrea un pod utilizzando la definizione del pod creata nel passo precedente.
kubectl create -f my-pod-with-memory.yml #Crea un podkubectl get pods
Ora, se ottieni i dettagli del Pod, puoi vedere che il Pod sta richiedendo 20Mi di memoria e ha un limite di 50Mi di memoria.
kubectl get podskubectl describe pod my-pod-memory-demo #Descrivi il pod
L’uso del pod può essere controllato utilizzando il seguente comando.
kubectl top pods #Controlla il consumo di risorse da parte del pod
Ora, crea una definizione del pod con richiesta e limite di CPU.
vim my-pod-with-cpu.ymlapiVersion: v1
kind: Pod
metadata:
name: my-pod-cpu-demo
spec:
containers:
- name: my-container-cpu-demo image: vish/stress
resources:
limits: cpu: "1"
requests:
cpu: "0.5"
args:
- -cpus
- "2"Nel file sopra, puoi vedere che la definizione ha una proprietà “resource” con richiesta di CPU come 0.5 e limite come 1. Nota anche che stiamo passando 2 CPU come nostra richiesta, che è più del limite.
Ora, creiamo un pod con richiesta e limite di CPU utilizzando il seguente comando.
kubectl apply -f my-pod-with-cpu.yml #Crea un podkubectl get pods
Ottieni i dettagli del pod che abbiamo creato.
kubectl get podskubectl describe pod my-pod-cpu-demo
Puoi vedere che il Pod ha richiesto 0.5 o 500m CPU con un limite di 1 CPU.
Per controllare l’uso della CPU, utilizza il seguente comando.
kubectl top pod #Controlla il consumo di risorse da parte del pod
Nello screenshot sopra puoi vedere che anche dopo aver passato 2 CPU nella definizione del pod come argomento, non può consumare più del limite, cioè 1 CPU. Qui il pod “my-pod-cpu-demo” potrebbe consumare 999m CPU, che è equivalente a 1 CPU e non potrebbe aumentare il suo consumo.
Conclusione
In questo articolo, abbiamo visto i passaggi per abilitare il monitoraggio nel cluster utilizzando il Metric Server. Abbiamo visto come un pod può richiedere CPU e memoria e consumare risorse non oltre il limite specificato.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.
