Questa pagina descrive le classi di calcolo che puoi utilizzare per eseguire i carichi di lavoro Autopilot di Google Kubernetes Engine (GKE) con requisiti hardware specifici. Per istruzioni, consulta Esegui i pod Autopilot su classi di computing specifiche.
Panoramica delle classi di calcolo Autopilot
Per impostazione predefinita, i pod GKE Autopilot vengono eseguiti su una piattaforma di computing ottimizzato per carichi di lavoro generici come la pubblicazione sul web e per job batch a media intensità. Questa piattaforma generale fornisce una configurazione hardware affidabile e ottimizzata in termini di costi in grado di gestire i requisiti della maggior parte dei carichi di lavoro.
Se hai carichi di lavoro con requisiti hardware univoci, come l'esecuzione
ad attività di machine learning o AI, l'esecuzione di database a traffico elevato in tempo reale
che necessitano di piattaforme CPU e architettura specifiche, Autopilot offre
classi di computing. Queste classi di calcolo sono un sottoinsieme selezionato delle serie di macchine Compute Engine e offrono una flessibilità superiore alla classe di calcolo Autopilot predefinita. Ad esempio, la classe di calcolo Scale-Out
utilizza VM che disattivano il multithreading simultaneo e sono ottimizzate per lo scale out.
Puoi richiedere nodi supportati da classi di calcolo specifiche in base ai requisiti di ciascun carico di lavoro. Analogamente alla classe di calcolo generica predefinita, Autopilot gestisce il dimensionamento e l'allocazione delle risorse delle classi di calcolo richieste in base ai pod in esecuzione. Puoi richiedere classi di calcolo a livello di pod per ottimizzare l'efficienza in termini di costi scegliendo la soluzione più adatta alle esigenze di ciascun pod.
Scegli un'architettura CPU specifica
Se i tuoi carichi di lavoro sono progettati per architetture o piattaforme CPU specifiche, puoi selezionare facoltativamente queste piattaforme o architetture nelle specifiche del pod. Ad esempio, se vuoi che i pod vengano eseguiti su nodi che utilizzano l'architettura Arm, puoi scegliere arm64
all'interno della classe di calcolo Scale-Out
.
Prezzi
I prezzi dei pod GKE Autopilot si basano sui nodi in cui vengono pianificati i pod. Per informazioni sui prezzi per i carichi di lavoro generici e i pod spot su classi di calcolo specifiche, nonché per informazioni su eventuali sconti per impegno di utilizzo, consulta la pagina relativa ai prezzi della modalità Autopilot.
I pod in classi di computing per uso generico o specializzate possono usufruire degli sconti per impegno di utilizzo.
Quando utilizzare classi di calcolo specifiche
La tabella seguente fornisce una panoramica tecnica delle classi di calcolo predefinite supportate da Autopilot e casi d'uso di esempio per i pod in esecuzione su ogni piattaforma. Se non richiedi una classe di computing, Autopilot colloca i tuoi pod sulla piattaforma di computing per uso generico, progettata per di eseguire la maggior parte dei carichi di lavoro in modo ottimale.
Se nessuna di queste opzioni soddisfa i tuoi requisiti, puoi definire e implementare le tue classi di calcolo personalizzate che specificano le proprietà dei nodi da utilizzare da parte di GKE durante l'aumento di scala del cluster. Per maggiori dettagli, vedi Informazioni sulle classi di calcolo personalizzate.
Requisito del carico di lavoro | Classe di calcolo | Descrizione | Esempi di casi d'uso |
---|---|---|---|
Carichi di lavoro che non richiedono hardware specifico | Per uso generico |
Autopilot utilizza la piattaforma di calcolo generica se non richiedi esplicitamente una classe di calcolo nella specifica del pod. Non puoi selezionare esplicitamente la piattaforma per uso generico in la tua specifica. Supportato dalla serie di macchine E2. |
|
Carichi di lavoro che richiedono GPU | Accelerator |
I tipi di GPU compatibili sono i seguenti:
|
|
Richieste di CPU o memoria superiori ai valori massimi della classe di calcolo generica o a piattaforme CPU specifiche | Balanced |
Supportato dalla serie di macchine N2 (Intel) o dalla serie di macchine N2D (AMD). |
|
Carichi di lavoro con requisiti per serie di macchine specifiche non coperti da altre classi di calcolo | Serie di macchine specifiche |
Per maggiori dettagli, vedi Ottimizzare il rendimento del pod Autopilot scegliendo una serie di macchine. |
|
Carichi di lavoro ad alta intensità di CPU come addestramento AI/ML o computing ad alte prestazioni (HPC) | Performance |
Per un elenco delle serie di macchine Compute Engine disponibili con la classe di calcolo Performance, consulta Serie di macchine supportate. |
|
Computing thread-per-core singolo e scalabilità orizzontale | Scale-Out |
Supportato dalla serie di macchine Tau T2A (Arm) o dalla serie di macchine Tau T2D (x86). |
|
Come selezionare una classe di calcolo in Autopilot
Per istruzioni dettagliate, consulta Scegliere le classi di calcolo per i pod Autopilot.
Per indicare ad Autopilot di posizionare i pod in una classe di computing specifica, specificare l'etichettacloud.google.com/compute-class
in un
nodeSelector
o una regola di affinità nodo,
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 del
classe compute
in base al tuo caso d'uso, ad esempio Scale-Out
.
Se selezioni Accelerator
, devi specificare anche 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 di 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 del
classe compute
in base al tuo caso d'uso, ad esempio Scale-Out
. Se selezioni Accelerator
, devi specificare anche una GPU compatibile. Per 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 di nodi. Per le istruzioni,
consulta Eseguire carichi di lavoro con utilizzo intensivo della CPU con prestazioni ottimali.
Quando esegui il deployment del carico di lavoro, Autopilot fa quanto segue:
- Esegue il provisioning automatico dei nodi supportati dalla configurazione specificata per eseguire i pod.
- Aggiunge automaticamente incompatibilità ai nuovi nodi per impedire che altri pod eseguano la pianificazione su quei nodi. I contami sono unici per ogni classe di calcolo. Se selezioni anche un'architettura CPU, GKE aggiunge un'alterazione distinta specifica per quell'architettura.
- Aggiunge automaticamente le tolleranze corrispondenti alle incompatibilità applicate ai tuoi di cui è stato eseguito il deployment, consentendo a GKE di posizionarli nel nuovo nodi.
Ad esempio, se richiedi la classe di computing Scale-Out
per un pod:
- Autopilot aggiunge un'incompatibilità specifica a
Scale-Out
per questi nodi. - Autopilot aggiunge una tolleranza per questa incompatibilità ai pod
Scale-Out
.
I pod che non richiedono Scale-Out
non riceveranno la tolleranza. Di conseguenza, GKE non pianificherà questi pod sui nodi Scale-Out
.
Se non richiedi esplicitamente una classe di calcolo nella specifica del carico di lavoro, Autopilot pianifica i pod sui nodi che utilizzano la classe di calcolo generica predefinita. La maggior parte dei carichi di lavoro può essere eseguita senza problemi sul campo di computing.
Come richiedere un'architettura della CPU
In alcuni casi, i carichi di lavoro potrebbero essere creati per un'architettura specifica, come come Arm. Alcune classi di calcolo, come Equilibrato o Scalabile, supportano più architetture CPU. Puoi richiedere un'architettura specifica insieme alla richiesta della classe di calcolo specificando un'etichetta nel selettore di nodi o nella regola di affinità dei nodi, come nell'esempio seguente:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-arm
spec:
replicas: 3
selector:
matchLabels:
app: nginx-arm
template:
metadata:
labels:
app: nginx-arm
spec:
nodeSelector:
cloud.google.com/compute-class: COMPUTE_CLASS
kubernetes.io/arch: ARCHITECTURE
containers:
- name: nginx-arm
image: nginx
resources:
requests:
cpu: 2000m
memory: 2Gi
Sostituisci ARCHITECTURE
con l'architettura della CPU
desiderato, ad esempio arm64
o amd64
.
Se non richiedi esplicitamente un'architettura, Autopilot utilizza predefinita della classe di computing specificata.
Architettura ARM su Autopilot
Autopilot supporta le richieste per nodi che utilizzano la CPU ARM dell'architettura. I nodi ARM sono più convenienti rispetto a nodi x86 simili, mentre migliorando le prestazioni. Per istruzioni su come richiedere nodi ARM, consulta le Esegui il deployment dei carichi di lavoro Autopilot sull'architettura ARM.
Assicurati di utilizzare le immagini corrette nei deployment. Se le tue I pod utilizzano immagini ARM e non richiedi nodi Arm, Autopilot pianifica i pod su nodi x86 e i pod si arrestano in modo anomalo. Analogamente, se usano accidentalmente immagini x86, ma richiedono nodi Arm per i pod, i pod in modo anomalo.
Convalide Autopilot per i carichi di lavoro delle classi di computing
Autopilot convalida i manifest del carico di lavoro per assicurarsi che le richieste di classe di calcolo e architettura nei selettori di nodi o nelle regole di affinità dei nodi siano formattate correttamente. Si applicano le seguenti regole:
- Non più di una classe di computing.
- Nessuna classe di calcolo non supportata.
- La versione GKE deve supportare la classe di computing.
- Non più di un'architettura selezionata.
- La classe di computing deve supportare l'architettura selezionata.
Se il manifest del carico di lavoro non supera una di queste convalide, Autopilot rifiuta il carico di lavoro.
Disponibilità regionale della classe di calcolo
La tabella seguente descrive le regioni in cui classi di computing specifiche e CPU sono disponibili:
Disponibilità delle classi di computing | |
---|---|
Per uso generico | Tutte le regioni |
Balanced |
Tutte le regioni |
Performance |
Tutte le regioni che contengono una serie di macchine supportate. |
Scale-Out |
Tutte le regioni che contengono un modello di macchine virtuali. Per visualizzare la disponibilità di serie di macchine specifiche, utilizza i filtri in Regioni e zone disponibili. |
Se una classe di computing è disponibile in una regione specifica, l'hardware è disponibile in almeno due zone di quella regione.
Richieste di risorse predefinite, minime e massime
Quando scegli una classe di computing per i carichi di lavoro Autopilot, di specificare richieste di risorse che soddisfano le richieste minime e massime per quella classe di computing. Per informazioni sulle richieste predefinite, le richieste minime e massime per ogni classe di computing, fai riferimento Richieste e limiti di risorse in GKE Autopilot.
Passaggi successivi
- Scopri come selezionare classi di calcolo specifiche nei carichi di lavoro Autopilot.
- Scopri di più sulle richieste di risorse predefinite, minime e massime per ciascun completamente gestita.