Questa pagina mostra come determinare la quantità di CPU e memoria disponibile su un nodo per eseguire i carichi di lavoro su Google Distributed Cloud.
Risorse riservate
Su ogni nodo del cluster, Google Distributed Cloud riserva le seguenti risorse per i componenti del sistema operativo e i componenti principali di Kubernetes:
- 80 millicore + 1% della capacità della CPU
- 330 MiB + 5% della capacità della memoria
Supponiamo, ad esempio, che un nodo abbia la capacità predefinita di 4 core CPU e 8 GiB di memoria. Google Distributed Cloud riserva:
- 80 millicore + 1% di 4 core = 120 millicore
- 330 MiB + 5% di 8 GiB = 730 MiB
Il sistema operativo e i componenti principali di Kubernetes non vengono eseguiti come pod, ma come processi normali. Le risorse rimanenti, oltre a quelle riservate, sono disponibili per i pod.
Soglia di espulsione
Per determinare la quantità di memoria disponibile per i pod, devi anche considerare la
soglia di espulsione.
Google Distributed Cloud imposta una soglia di espulsione di 100 MiB. Ciò significa che se la memoria disponibile su un nodo scende sotto i 100 MiB, kubelet potrebbe espellere uno o più pod.
Risorse allocabili
Le risorse di un nodo disponibili per i pod sono chiamate risorse allocabili. Calcola le risorse allocabili nel seguente modo:
Allocatable CPU = CPU Capacity - Reserved CPUAllocatable Memory = Memory Capacity - Reserved Memory - Eviction Threshold
Supponiamo, ad esempio, che un nodo abbia una capacità di memoria di 8 GiB, 680 MiB di memoria riservata e una soglia di espulsione di 100 MiB. La memoria allocabile è:
8 GiB - 680 MiB - 100 MiB = 7220 MiB
Risorse disponibili per i carichi di lavoro
Le risorse allocabili di un nodo sono le risorse disponibili per i pod. Sono inclusi i pod che eseguono i carichi di lavoro e i pod che eseguono i componenti aggiuntivi di Google Distributed Cloud. I componenti aggiuntivi includono il controller Ingress, il servizio Ingress, l'agente Connect, i componenti di rete, i componenti di logging e altro ancora.
Su un determinato nodo, per determinare le risorse disponibili per i carichi di lavoro, inizia con le risorse allocabili e poi sottrai le risorse utilizzate dai componenti aggiuntivi.
La difficoltà è che i componenti aggiuntivi non sono distribuiti in modo uniforme tra i nodi di un cluster Google Distributed Cloud. Un nodo potrebbe avere tre componenti aggiuntivi e un altro nodo potrebbe averne dieci. Inoltre, i vari componenti aggiuntivi richiedono quantità diverse di CPU e memoria.
Come regola generale, puoi considerare che i componenti aggiuntivi in esecuzione su un nodo richiedono:
- 200 millicore di CPU
- 100 MiB di memoria
Ora puoi calcolare le risorse disponibili su un nodo per i carichi di lavoro nel seguente modo:
Allocatable CPU - 200 millicoresAllocatable memory - 100 MiB
Alcuni nodi richiedono più risorse per i componenti aggiuntivi rispetto a quanto indicato nella regola generale precedente. Ad esempio, un nodo potrebbe eseguire un componente aggiuntivo Prometheus che richiede 2 GiB di memoria. Tuttavia, se il cluster ha più di qualche nodo, è ragionevole presupporre che la regola generale si applichi alla maggior parte dei nodi.
Passaggi successivi
Per saperne di più sul concetto di risorse allocabili, consulta la sezione Risorse allocabili nella documentazione di GKE on Google Cloud.