Questa pagina mostra come ottimizzare le prestazioni dei carichi di lavoro che richiedono un uso intensivo della CPU indicando a Google Kubernetes Engine (GKE) di posizionare ciascun pod sul proprio nodo, con accesso completo a tutte le risorse del nodo. Per utilizzare questo modello di posizionamento dei pod, richiedi la classe di computing Performance nei tuoi carichi di lavoro Autopilot.
Vantaggi della classe di computing delle prestazioni
I nodi dedicati per pod sono ideali per l'esecuzione di carichi di lavoro su larga scala che utilizzano la CPU e che potrebbero richiedere l'accesso a funzionalità sulla macchina virtuale (VM) sottostante. Ad esempio, carichi di lavoro di addestramento AI/ML ad alta intensità di CPU o carichi di lavoro batch con computing ad alte prestazioni (HPC).
I pod su questi nodi dedicati offrono i seguenti vantaggi:
- Prestazioni prevedibili: accedi a tutte le risorse dei nodi in qualsiasi momento.
- Carichi di lavoro eseguibili: se non imposti limiti di risorse nei manifest, i pod della classe Performance possono eseguire il burst in tutta la capacità inutilizzata sul nodo con il rischio minimo di eliminazione della pressione dei nodi Kubernetes.
Come funzionano i pod delle classi prestazioni
Devi eseguire il deployment di un pod con le seguenti caratteristiche:
- Seleziona la classe delle prestazioni e una serie di macchine Compute Engine.
- Specifica le richieste di risorse e, idealmente, non specifica limiti per le risorse
GKE fa quanto segue:
- Assicura che il pod di cui è stato eseguito il deployment richieda almeno le risorse minime per la classe di computing
- Calcola le richieste di risorse totali del pod di cui è stato eseguito il deployment e di eventuali DaemonSet nel cluster
- Esegue il provisioning di un nodo supportato dalla serie di macchine selezionata
- Modifica il manifest del pod con una combinazione di selettori e tolleranze dei nodi per garantire che il pod venga eseguito sul proprio
Compatibilità con altre funzionalità di GKE
Puoi utilizzare i pod di classe Performance con le seguenti funzionalità di GKE:
- Pod Spot
- Pod a tempo di esecuzione esteso
- Separazione dei carichi di lavoro
- Prenotazioni di capacità
- Sconti per impegno di utilizzo
I pod spot e i pod con tempo di esecuzione esteso si escludono a vicenda. GKE non applica richieste di risorse minime più elevate per i pod di classe Performance che usano la separazione dei carichi di lavoro.
Prezzi
Il tuo pod può utilizzare l'intera VM sottostante e qualsiasi hardware collegato in qualsiasi momento. Per questo hardware ti viene addebitato un costo da Compute Engine, con una tariffa premium per la gestione e la scalabilità dei nodi Autopilot. Per i dettagli, consulta i prezzi di GKE.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Abilita l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività, installa e quindi initialize gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo
gcloud components update
.
- Assicurati di conoscere i seguenti aspetti:
- Serie di macchine e casi d'uso di Compute Engine
- Requisiti a livello di kernel per le applicazioni
- Assicurati di avere un cluster Autopilot esistente che esegue la versione 1.28.6-gke.1369000 e successive o la versione 1.29.1-gke.1575000 e successive. Per creare un cluster, consulta Creare un cluster Autopilot.
Connessione al tuo cluster
Utilizza Google Cloud CLI per connetterti al tuo cluster Autopilot:
gcloud container clusters get-credentials CLUSTER_NAME \
--location=LOCATION
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del tuo cluster.LOCATION
: la località Compute Engine del cluster.
Deployment di un pod di classe Performance
Salva il seguente manifest come
perf-class-pod.yaml
:apiVersion: v1 kind: Pod metadata: name: performance-pod spec: nodeSelector: cloud.google.com/compute-class: Performance cloud.google.com/machine-family: MACHINE_SERIES containers: - name: my-container image: "k8s.gcr.io/pause" resources: requests: cpu: 20 memory: "100Gi"
Sostituisci
MACHINE_SERIES
con la serie di macchine di Compute Engine per il tuo pod, ad esempioc3
. Per i valori supportati, vedi Serie di macchine supportate in questo documento.Esegui il deployment del pod:
kubectl apply -f perf-class-pod.yaml
Utilizzare gli SSD locali nei pod di classe Performance
I pod delle classi prestazioni possono utilizzare gli SSD locali per l'archiviazione temporanea se selezioni una serie di macchine che include un SSD locale. GKE prende in considerazione le richieste di archiviazione temporanee quando esegue il provisioning di un nodo per il pod della classe Performance.
Salva il seguente manifest come
perf-class-ssd-pod.yaml
:apiVersion: v1 kind: Pod metadata: name: performance-pod spec: nodeSelector: cloud.google.com/compute-class: Performance cloud.google.com/machine-family: MACHINE_SERIES cloud.google.com/gke-ephemeral-storage-local-ssd: "true" containers: - name: my-container image: "k8s.gcr.io/pause" resources: requests: cpu: 12 memory: "50Gi" ephemeral: "200Gi"
Sostituisci
MACHINE_SERIES
con una serie di macchine supportata che supporta anche gli SSD locali. Se la serie di macchine specificata non supporta gli SSD locali, il deployment non va a buon fine e si verifica un errore.Esegui il deployment del pod:
kubectl apply -f perf-class-pod.yaml
Serie di macchine supportate
La classe di computing delle prestazioni supporta le seguenti serie di macchine:
- Serie di macchine C3:
c3
(sono disponibili SSD locali) - Serie di macchine C3D:
c3d
(sono disponibili SSD locali) - Serie di macchine H3:
h3
- Serie di macchine C2:
c2
- Serie di macchine C2D:
c2d
- Serie di macchine T2D:
t2d
- Serie di macchine T2A:
t2a
Per confrontare queste serie di macchine e i relativi casi d'uso, consulta Confronto di serie di macchine nella documentazione di Compute Engine.
In che modo GKE seleziona una dimensione della macchina
Per selezionare una dimensione della macchina nella serie di macchine specificata, GKE calcola la CPU totale, la memoria totale e le richieste di archiviazione temporanea totali del pod della classe Performance e di qualsiasi DaemonSet che verrà eseguito sul nuovo nodo. GKE arrotonderà questi valori al tipo di macchina Compute Engine più vicino disponibile che supporta tutti questi totali.
Esempio 1: considera un pod di classe Performance che seleziona la serie di macchine
C3
. Le richieste di risorse totali, inclusi i DaemonSet, sono le seguenti:- 70 vCPU
- 200 GiB di memoria
GKE posiziona il pod su un nodo supportato dal tipo di macchina
c3-standard-88
, che ha 88 vCPU e 352 GB di memoria.Esempio 2: considera un pod di classe Performance che seleziona la serie di macchine
C3D
e gli SSD locali per l'archiviazione temporanea. Le richieste di risorse totali, inclusi i DaemonSet, sono le seguenti:- 12 vCPU
- 50 GiB di memoria
- 200 GiB di spazio di archiviazione temporaneo
GKE posiziona il pod su un nodo che utilizza il tipo di macchina
c3d-standard-16-lssd
, che ha 16 vCPU, 64 GiB di memoria e 365 GiB di capacità SSD locale.
Passaggi successivi
- Scopri di più sulle altre classi di calcolo Autopilot
- Esegui il deployment di carichi di lavoro basati su GPU in Autopilot