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 sui cluster Anthos su VMware (GKE On-Prem).

Risorse riservate

Su ciascun nodo del cluster, i cluster Anthos su VMware riservano le seguenti risorse per i componenti del sistema operativo e i componenti di Kubernetes principali:

  • 80 millicore + 1% della capacità della CPU
  • 330 MiB + 5% della capacità di memoria

Ad esempio, supponiamo che un nodo abbia una capacità predefinita di 4 core della CPU e 8 GiB di memoria. I cluster Anthos su VMware prenotano:

  • 80 millicore + 1% di 4 core = 120 millicore
  • 330 MiB + 5% di 8 GiB = 730 MiB

Il sistema operativo e i componenti di base di Kubernetes non vengono eseguiti come pod, ma come processi normali. Le risorse rimanenti, oltre a quelle prenotate, sono disponibili per i pod.

Soglia di rimozione

Per determinare la quantità di memoria disponibile per i pod, devi anche considerare la soglia di rimozione. I cluster Anthos su VMware impostano una soglia di rimozione di 100 MiB. Ciò significa che se la memoria disponibile su un nodo scende sotto i 100 MiB, kubelet potrebbe 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 8 GiB di capacità di memoria, 680 MiB di memoria riservata e una soglia di rimozione di 100 MiB. Quindi 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 quelle disponibili per i pod. Include i pod che eseguono i carichi di lavoro e i pod che eseguono i cluster Anthos sui componenti aggiuntivi di VMware. 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 tuoi carichi di lavoro, devi iniziare con le risorse allocabili, quindi sottrai le risorse utilizzate dai componenti aggiuntivi.

La sfida è che i componenti aggiuntivi non sono distribuiti uniformemente tra i nodi di un cluster Anthos sul cluster VMware. Un nodo potrebbe avere tre componenti aggiuntivi, mentre un altro nodo può averne dieci. Inoltre, i vari componenti aggiuntivi richiedono diverse quantità di CPU e memoria.

Come regola generale, puoi stabilire 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 tuoi carichi di lavoro come 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 GiB di memoria. Tuttavia, se il cluster ha più di un nodo, è ragionevole supporre che la regola generale si applichi alla maggior parte dei nodi.

Passaggi successivi

Per saperne di più sul concetto di risorse allocabili, consulta la pagina relativa alle risorse allocabili nella documentazione di GKE su Google Cloud.