Questo documento mostra come selezionare classi di computing specifiche per eseguire carichi di lavoro con 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 carichi di lavoro come attività di machine learning e AI o per l'esecuzione di database in tempo reale con traffico elevato.
Queste classi di computing sono un sottoinsieme delle serie di macchine Compute Engine
e offrono
flessibilità oltre 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 normali o i pod Spot per richiedere nodi supportati da queste classi di computing. Puoi anche richiedere un'architettura CPU specifica, ad esempio Arm, nelle classi di computing che la supportano.
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
- Per utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo il
gcloud components updatecomando. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
- 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 inserire i pod in una classe di computing specifica, specifica l'etichettacloud.google.com/compute-class in un
nodeSelector
o in una regola di affinità dei nodi,
come negli esempi seguenti:
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 computing
in base al tuo caso d'uso, ad esempio Scale-Out. 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à
regionale. Per istruzioni, consulta Eseguire carichi di lavoro che richiedono un 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 computing in base al tuo caso d'uso, ad esempio Scale-Out. 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à
regionale. Per istruzioni, consulta Eseguire carichi di lavoro che richiedono un utilizzo intensivo della CPU con
prestazioni ottimali.
Puoi anche richiedere classi di computing specifiche per i pod Spot.
Specificare le richieste di risorse
Quando scegli una classe di computing, assicurati di specificare le richieste di risorse per i 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 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 computing 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 pod devono utilizzare un'architettura diversa, richiedila nella regola di affinità dei nodi o nel selettore di nodi, insieme alla richiesta della classe di computing. La classe di computing richiesta deve supportare l'architettura CPU specificata.
Per istruzioni, consulta Eseguire il deployment di pod Autopilot su 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.