Questa pagina mostra come ottimizzare le prestazioni dei carichi di lavoro che richiedono un uso intensivo della CPU utilizzando nodi dedicati per ogni pod posizionato da Google Kubernetes Engine (GKE) ogni pod sul proprio nodo, con e l'accesso a tutte le risorse del nodo. Per utilizzare questo modello di posizionamento dei pod, richiedi la performance classe di computing nei tuoi carichi di lavoro Autopilot.
Vantaggi della classe di computing delle prestazioni
I nodi dedicati per pod sono ideali quando esegui su larga scala un uso intensivo della CPU carichi di lavoro che potrebbero richiedere l'accesso a funzionalità o una macchina virtuale (VM). Ad esempio, carichi di lavoro per l'addestramento AI/ML ad alta intensità di CPU carichi di lavoro batch per il calcolo delle 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 per le risorse nei manifest, i pod delle classi Performance possono esaurire tutta la capacità inutilizzata con il rischio minimo di eliminazione della pressione dei nodi da parte di 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:
- Garantisce che il pod di cui è stato eseguito il deployment richieda almeno risorse minime per la classe di computing
- Calcola le richieste totali di risorse del pod di cui è stato eseguito il deployment e di qualsiasi 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 di nodi e per garantire che il pod venga eseguito sul proprio nodo
Compatibilità con altre funzionalità di GKE
Puoi utilizzare i pod di classe Performance con i seguenti caratteristiche e funzionalità:
- 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 Pod delle classi di prestazioni che utilizzano la separazione dei carichi di lavoro.
Prezzi
Il tuo pod può utilizzare in qualsiasi momento l'intera VM sottostante e qualsiasi hardware collegato e ti viene addebitato il costo di questo hardware da Compute Engine, per la gestione e la scalabilità dei nodi Autopilot. Per maggiori dettagli, vedi Prezzi di GKE.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Attiva l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
install e poi
inizializzare
con gcloud CLI. Se hai già installato gcloud CLI, scarica 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 una versione in esecuzione del cluster Autopilot esistente 1.28.6-gke.1369000 e versioni successive o versione 1.29.1-gke.1575000 e successive. Per creare un cluster, consulta Crea 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
: il Compute Engine località 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 di Compute Engine per il tuo pod, ad esempioc3
. Per 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 di prestazioni possono utilizzare gli SSD locali per l'archiviazione temporanea se selezioni una che include un SSD locale. GKE considera temporaneo di archiviazione durante 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 un serie di macchine supportate che supportano anche SSD locali. Se la serie di macchine specificata non supporta gli SSD locali, il deployment non va a buon fine con 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 N4:
n4
- 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
- Serie di macchine Z3:
z3
(le unità SSD locali sono sempre in bundle)
Per confrontare queste serie di macchine e i relativi casi d'uso, consulta Confronto di serie di macchine nella documentazione di Compute Engine.
Come GKE seleziona una dimensione della macchina
Per selezionare una dimensione della macchina nella serie di macchine specificata, calcola le richieste totali di CPU, memoria e spazio di archiviazione il pod della classe Performance e tutti gli oggetti DaemonSet che verranno eseguiti sul nuovo nodo. GKE arrotonda questi valori al valore più vicino disponibile tipo di macchina Compute Engine che supporta tutti questi totali.
Esempio 1: considera un pod di classe Performance che seleziona la macchina
C3
Google Cloud. 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 tipo di macchina
c3-standard-88
, con 88 vCPU e 352 GB di la memoria.Esempio 2: considera un pod di classe Performance che seleziona la macchina
C3D
e SSD locali per l'archiviazione temporanea. Le richieste di risorse totali inclusi i DaemonSet:- 12 vCPU
- 50 GiB di memoria
- 200 GiB di spazio di archiviazione temporaneo
GKE posiziona il pod su un nodo che utilizza Tipo di macchina
c3d-standard-16-lssd
, con 16 vCPU, 64 GiB 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