Risorse disponibili per i carichi di lavoro

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à di memoria

Ad esempio, supponiamo che un nodo abbia la capacità predefinita di 4 core CPU e 8 GiB di memoria. Google Distributed Cloud si riserva inoltre:

  • 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, loro vengono eseguiti come processi ordinari. Le risorse rimanenti, oltre a queste risorse riservate, sono disponibili per i pod.

Soglia di espulsione

Per determinare la quantità di memoria disponibile per i pod, devi considerare anche soglia di rimozione. Google Distributed Cloud imposta una soglia di espulsione di 100 MiB. Ciò significa se la memoria disponibile su un nodo è inferiore a 100 MiB, kubelet potrebbe e rimuovere uno o più pod.

Risorse allocabili

Le risorse su un nodo disponibili per i pod sono dette risorse allocabili. Calcola le risorse allocabili come segue:

  • Allocatable CPU = CPU Capacity - Reserved CPU
  • Allocatable Memory = Memory Capacity - Reserved Memory - Eviction Threshold

Ad esempio, supponiamo 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, servizio in entrata, agente Connect, componenti di rete, logging componenti e altro ancora.

Per determinare le risorse disponibili per i carichi di lavoro su un determinato nodo, inizia con le risorse allocabili e poi sottrai le risorse utilizzate componenti aggiuntivi.

Il problema è che i componenti aggiuntivi non vengono distribuiti in modo uniforme tra i nodi Google Distributed Cloud. Un nodo potrebbe avere tre componenti aggiuntivi e un altro potrebbe avere dieci componenti aggiuntivi. Inoltre, i vari componenti aggiuntivi richiedono importi diversi di CPU e memoria.

Come regola generale, puoi immaginare che i componenti aggiuntivi in esecuzione su un nodo richiedano:

  • 200 millicore di CPU
  • 100 MiB di memoria

Ora puoi calcolare le risorse disponibili su un nodo per i tuoi carichi di lavoro che segue:

  • Allocatable CPU - 200 millicores
  • Allocatable memory - 100 MiB

Alcuni nodi richiedono più risorse per i componenti aggiuntivi rispetto a quanto indicato dalla regola generale precedente. Ad esempio, un nodo potrebbe eseguire un componente aggiuntivo Prometheus che richiede 2 GB di memoria. Tuttavia, se il tuo cluster ha più di qualche nodo, è ragionevole assumere che la regola generale si applichi alla maggior parte dei nodi.

Passaggi successivi

Per saperne di più sul concetto di risorse allocabili, vedi Risorse allocabili nella documentazione per GKE su Google Cloud.