Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra le prenotazioni delle risorse del nodo nel servizio Azure Kubernetes.
Prenotazioni di risorse
AKS usa le risorse dei nodi per aiutare i nodi a funzionare come parte del cluster. Questo uso può causare una discrepanza tra le risorse totali del nodo e le risorse allocabili in AKS.
AKS riserva due tipi di risorse, CPU e memoria, su ogni nodo per mantenere prestazioni e funzionalità del nodo. Man mano che un nodo aumenta di dimensioni nelle risorse, la prenotazione delle risorse aumenta anche a causa della maggiore necessità di gestire i pod distribuiti dall'utente. Tenere presente che non è possibile modificare le prenotazioni delle risorse in un nodo.
Riserve della CPU
La CPU riservata dipende dal tipo di nodo e dalla configurazione del cluster, quindi la CPU potrebbero essere meno allocabile a causa dell'esecuzione di funzionalità aggiuntive. La tabella seguente mostra le prenotazioni della CPU in millicore:
| Core della CPU sull'host | 1 nucleo | 2 nuclei | 4 nuclei | 8 nuclei | 16 nuclei | 32 core | 64 core |
|---|---|---|---|---|---|---|---|
| CPU riservata a kube (millicore) | 60 | 100 | 140 | 180 | 260 | 420 | 740 |
Prenotazioni di memoria
In AKS, la memoria riservata è la somma di due valori:
AKS 1.29 e versioni successive
Per impostazione predefinita, il
kubeletdaemon usa la regola di rimozione memory.available< 100 Mi. Questa regola garantisce che un nodo abbia almeno 100 Mi allocabili in qualsiasi momento. Quando un host è inferiore alla soglia di memoria disponibile,kubeletattiva la terminazione di uno dei pod in esecuzione e libera memoria nel computer host.Frequenza di prenotazioni di memoria impostata in base al valore minore di: 20 MB * Numero massimo di pod supportati nel nodo + 50 MB o 20% delle risorse di memoria di sistema totali.
Esempi:
- Se la macchina virtuale (VM) fornisce 8 GB di memoria e il nodo supporta fino a 30 pod, AKS riserva 20 MB * 30 Max Pods + 50 MB = 650 MB per kube-reserved.
Allocatable space = 8 GB - 0.65 GB (kube-reserved) - 0.1 GB (eviction threshold) = 7.25 GB or 90.625% allocatable. - Se la VM fornisce 4 GB di memoria e il nodo supporta fino a 70 pod, AKS riserva il 25% * 4 GB = 1000 MB per kube-reserved, poiché questo valore è inferiore a 20 MB * 70 pod max + 50 MB = 1450 MB.
Per ulteriori informazioni, vedere Configurare il numero massimo di pod per nodo in un cluster di Azure Kubernetes Service (AKS).
- Se la macchina virtuale (VM) fornisce 8 GB di memoria e il nodo supporta fino a 30 pod, AKS riserva 20 MB * 30 Max Pods + 50 MB = 650 MB per kube-reserved.
Nota
Per personalizzare kubeReserved i valori di CPU e memoria o hardEvictionThreshold dei pool di nodi Linux, usare le impostazioni di anteprima per la configurazione personalizzata dei nodi e registrare il flag della funzionalità AKSNodeCustomizationPreview. Per altre informazioni, vedere Personalizzare la configurazione dei nodi per i pool di nodi di Servizio Azure Kubernetes (AKS).
Versioni del servizio Azure Kubernetes precedenti alla 1.29
- Per impostazione predefinita, il
kubeletdaemon usa la regola di rimozione memory.available< 750 Mi. Questa regola garantisce che un nodo abbia almeno 750 Mi allocabili in qualsiasi momento. Quando un host è inferiore alla soglia di memoria disponibile,kubeletattiva la terminazione di uno dei pod in esecuzione e libera memoria nel computer host. -
Una quantità regressiva di memoria riservata affinché il daemon kubelet funzioni correttamente (kube-reserved).
- 25% dei primi 4 GB di memoria
- 20% dei successivi 4 GB di memoria (fino a 8 GB)
- 10% dei successivi 8 GB di memoria (fino a 16 GB)
- 6% dei successivi 112 GB di memoria (fino a 128 GB)
- 2% di qualsiasi memoria superiore a 128 GB
Nota
AKS riserva ulteriori 2 GB per i processi di sistema nei nodi Windows che non rientrano nella memoria calcolata.
Le regole di allocazione della memoria e della CPU sono progettate per:
- Mantenere integri i nodi dell'agente, inclusi alcuni pod del sistema di hosting critici per l'integrità del cluster.
- Verificare che il nodo segnali meno memoria e CPU allocabili rispetto a quanto segnalerebbe se non facesse parte di un cluster Kubernetes.
Ad esempio, se un nodo offre 7 GB, segnala il 34% della memoria non allocabile, inclusa la soglia di rimozione totale di 750Mi.
0.75 + (0.25*4) + (0.20*3) = 0.75 GB + 1 GB + 0.6 GB = 2.35 GB / 7 GB = 33.57% reserved
Oltre alle prenotazioni per Kubernetes stesso, il sistema operativo del nodo sottostante riserva anche una quantità di risorse CPU e memoria per gestire le funzioni del sistema operativo.
Per le procedure consigliate correlate, vedere Procedure consigliate per le funzionalità di base del pianificatore in AKS.
Passaggi successivi
- Informazioni dettagliate sulla configurazione personalizzata dei nodi in AKS.