Questa pagina mostra come selezionare classi di computing specifiche per eseguire carichi di lavoro con requisiti hardware unici nei cluster Autopilot di Google Kubernetes Engine (GKE). Prima di iniziare, acquisisci familiarità con il concetto di classi di calcolo 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 carichi di lavoro come attività di machine learning e AI o per l'esecuzione di database a traffico elevato in tempo reale.
Queste classi di calcolo sono un sottoinsieme della serie di macchine di Compute Engine e offrono flessibilità oltre la 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 normali pod Autopilot o i tuoi pod Spot per richiedere nodi supportati da queste classi di computing. Puoi anche richiedere un'architettura CPU specifica, ad esempio Arm, nelle classi di calcolo che supportano quell'architettura.
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 initialize gcloud CLI. Se hai già installato gcloud CLI, scarica 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 successiva.
Richiedi una classe di computing nel pod Autopilot
Per indicare ad Autopilot di posizionare i pod in una classe di computing specifica, specifica l'etichettacloud.google.com/compute-class
in un nodeSelector o 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 selezionare anche una serie di macchine Compute Engine nel selettore dei nodi. Per le istruzioni, consulta Eseguire carichi di lavoro ad alta intensità di 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 selezionare anche una serie di macchine Compute Engine nel selettore dei nodi. Per le istruzioni, consulta Eseguire carichi di lavoro ad alta intensità di CPU con prestazioni ottimali.
Puoi anche richiedere classi di computing specifiche per i tuoi pod Spot.
Specifica le richieste di risorse
Quando scegli una classe di computing, 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 ne fa automaticamente lo scale up. Tuttavia, se le richieste sono superiori al massimo, Autopilot non esegue il deployment dei pod e mostra un messaggio di errore.
Scegli un'architettura CPU
Alcune classi di calcolo supportano diverse architetture di CPU. Ad esempio, la classe Scale-Out
supporta sia le architetture Arm che x86. Se non richiedi un'architettura specifica, Autopilot esegue il provisioning dei nodi con l'architettura predefinita della classe di computing specificata. Se i pod devono utilizzare un'architettura diversa, richiedila nel selettore dei nodi o nella regola di affinità dei nodi, insieme alla richiesta della classe di computing. La classe di computing richiesta deve supportare l'architettura della CPU specificata.
Per le istruzioni, consulta Eseguire il deployment dell'architettura di pod Autopilot su 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.
- Leggi ulteriori informazioni sulle richieste di risorse predefinite, minime e massime per ogni piattaforma.