Questo documento mostra come selezionare classi di calcolo specifiche per eseguire carichi di lavoro con requisiti hardware unici nei cluster Autopilot di Google Kubernetes Engine (GKE). Prima di leggere questo documento, assicurati di conoscere il concetto di classi di calcolo in GKE Autopilot.
Panoramica delle classi di calcolo di Autopilot
Autopilot offre classi di calcolo progettate per eseguire carichi di lavoro con requisiti hardware specifici. Queste classi di calcolo sono utili per carichi di lavoro come attività di machine learning e AI o l'esecuzione di database ad alto traffico in tempo reale.
Queste classi di calcolo sono un sottoinsieme delle serie di macchine Compute Engine e offrono una flessibilità superiore alla classe di calcolo generica predefinita di Autopilot.
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 o Spot regolari in modo che richiedano i nodi supportati da queste classi di calcolo. Puoi anche richiedere un'architettura della CPU specifica, ad esempio Arm, nei 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à,
installa e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente 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 calcolo nel pod Autopilot
Per indicare ad Autopilot di posizionare i pod in 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 anche specificare una GPU compatibile. Per le istruzioni, consulta Eseguire il deployment dei carichi di lavoro GPU in Autopilot. Se selezioni Performance
,
devi anche selezionare una serie di macchine Compute Engine nel selettore dei nodi. Per le istruzioni, consulta Eseguire carichi di lavoro con utilizzo intensivo 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 di calcolo
in base al tuo caso d'uso, ad esempio Scale-Out
. Se selezioni Accelerator
, devi anche specificare una GPU compatibile. Per le istruzioni,
consulta Eseguire il deployment dei carichi di lavoro GPU in Autopilot. Se selezioni Performance
,
devi anche selezionare una serie di macchine Compute Engine nel selettore dei nodi. Per le istruzioni,
consulta Eseguire carichi di lavoro con utilizzo intensivo della CPU con prestazioni ottimali.
Puoi anche richiedere classi di calcolo specifiche per i tuoi pod Spot.
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 esegue automaticamente lo scale up delle richieste. Tuttavia, se le richieste sono superiori al numero massimo, Autopilot non esegue il deployment dei pod e mostra un messaggio di errore.
Scegli un'architettura CPU
Alcune classi di calcolo supportano più architetture CPU. Ad esempio, la classeScale-Out
supporta sia le architetture ARM che x86. Se
non richiedi un'architettura specifica, Autopilot esegue il provisioning dei nodi che
hanno l'architettura predefinita della classe di calcolo specificata. Se i pod devono utilizzare un'architettura diversa, richiedi questa architettura nel selettore dei nodi o nella regola di affinità dei nodi, insieme alla richiesta della classe di calcolo. La classe di calcolo richiesta deve supportare l'architettura della CPU specificata.
Per le istruzioni, consulta Eseguire il deployment di 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 le classi di calcolo Autopilot disponibili.
- Scopri le richieste di risorse predefinite, minime e massime per ogni piattaforma.