Questo documento mostra come selezionare classi di calcolo specifiche per eseguire carichi di lavoro che hanno requisiti hardware unici nei cluster Google Kubernetes Engine (GKE) Autopilot. Prima di leggere questo documento, assicurati di conoscere il concetto di classi di computing in GKE Autopilot.
Panoramica delle classi di computing Autopilot
Autopilot offre classi di computing progettate per eseguire carichi di lavoro con requisiti hardware specifici. Queste classi di computing sono utili per workload come il machine learning e le attività di AI o per l'esecuzione di database ad alto traffico in tempo reale.
Queste classi di computing sono un sottoinsieme delle serie di macchine di Compute Engine e offrono una flessibilità maggiore rispetto alla classe di computing per uso generico Autopilot predefinita.
Ad esempio, la classe Scale-Out
disattiva il multi-threading simultaneo in modo che ogni
vCPU sia un core fisico.
In base alle esigenze dei singoli pod, puoi configurare i pod Autopilot regolari o i pod Spot per richiedere nodi supportati da queste classi di calcolo. Puoi anche richiedere un'architettura della CPU specifica, ad esempio Arm, nelle classi di calcolo che supportano questa architettura.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza
gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima versione
eseguendo
gcloud components update
.
- Assicurati di avere un cluster GKE Autopilot che esegue GKE versione 1.24.1-gke.1400 o successive.
Richiedere una classe di computing nel pod Autopilot
Per indicare ad Autopilot di posizionare i pod su una classe di calcolo specifica, specifica l'etichettacloud.google.com/compute-class
in un
nodeSelector
o in una regola di affinità dei nodi,
come nei seguenti esempi:
nodeSelector
apiVersion: apps/v1 kind: Deployment metadata: name: hello-app spec: replicas: 3 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: nodeSelector: cloud.google.com/compute-class: "COMPUTE_CLASS" containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: requests: cpu: "2000m" memory: "2Gi"
Sostituisci COMPUTE_CLASS
con il nome della classe di calcolo
in base al tuo caso d'uso, ad esempio Scale-Out
. Se selezioni Accelerator
,
devi specificare anche una GPU compatibile. Per istruzioni, vedi Esegui il deployment dei carichi di lavoro GPU in Autopilot. Se
selezioni Performance
, puoi facoltativamente selezionare una serie di macchine Compute Engine
nel selettore di nodi. Se non specifichi una serie di macchine, GKE utilizza la serie di macchine C4 a seconda della disponibilità a livello di regione. Per istruzioni, vedi Esegui workload che richiedono un utilizzo elevato della CPU con prestazioni ottimali.
nodeAffinity
apiVersion: apps/v1 kind: Deployment metadata: name: hello-app spec: replicas: 3 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: terminationGracePeriodSeconds: 25 containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: requests: cpu: "2000m" memory: "2Gi" ephemeral-storage: "1Gi" affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: cloud.google.com/compute-class operator: In values: - "COMPUTE_CLASS"
Sostituisci COMPUTE_CLASS
con il nome della
classe
compute in base al tuo caso d'uso, ad esempio Scale-Out
. Se selezioni
Accelerator
, devi anche specificare una GPU compatibile. Per istruzioni, vedi Esegui il deployment dei carichi di lavoro GPU in Autopilot.
Se selezioni Performance
, puoi facoltativamente selezionare una
serie di macchine Compute Engine nel selettore dei nodi. Se non specifichi una serie di macchine, GKE utilizza la serie di macchine C4
a seconda della disponibilità
regionale. Per istruzioni, consulta Esegui workload che richiedono un utilizzo elevato della CPU con
prestazioni ottimali.
Puoi anche richiedere classi di calcolo specifiche per i tuoi Spot Pod.
Specifica le richieste di risorse
Quando scegli una classe di calcolo, assicurati di specificare le richieste di risorse per i tuoi pod in base alle richieste di risorse minime e massime per la classe selezionata. Se le richieste sono inferiori al minimo, Autopilot le aumenta automaticamente. Tuttavia, se le tue richieste sono superiori al massimo, Autopilot non esegue il deployment dei pod e visualizza un messaggio di errore.
Scegliere un'architettura CPU
Alcune classi di calcolo supportano più architetture CPU. Ad esempio, la classe
Scale-Out
supporta le architetture Arm e x86. Se non richiedi un'architettura specifica, Autopilot esegue il provisioning dei nodi con l'architettura predefinita della classe di computing specificata. Se i tuoi pod devono
utilizzare un'architettura diversa, richiedila nel selettore di nodi
o nella regola di affinità dei nodi, insieme alla richiesta di classe di calcolo. La classe di calcolo
che richiedi deve supportare l'architettura della CPU specificata.
Per istruzioni, consulta Esegui il deployment dei pod Autopilot sull'architettura Arm.
Passaggi successivi
- Scopri di più sull'architettura dei cluster Autopilot.
- Scopri di più sul ciclo di vita dei pod.
- Scopri di più sulle classi di computing Autopilot disponibili.
- Scopri di più sulle richieste di risorse predefinite, minime e massime per ogni piattaforma.