Classi di calcolo in Autopilot


In questa pagina vengono descritte le classi di computing che puoi utilizzare per eseguire Carichi di lavoro Autopilot di Google Kubernetes Engine (GKE) con specifiche requisiti hardware. Per istruzioni, consulta Esegui i pod Autopilot su classi di calcolo 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 offre un ambiente affidabile, configurazione hardware con ottimizzazione dei costi in grado di gestire carichi di lavoro con scale out impegnativi.

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 computing sono un sottoinsieme selezionato Google Compute Engine macchine e offrire rispetto alla classe di calcolo Autopilot predefinita. Ad esempio: la classe di computing Scale-Out usa VM che disattivano il multi-threading simultaneo sono ottimizzate per lo scale out.

Puoi richiedere nodi supportati da classi di computing specifiche in base per ogni carico di lavoro. Simile al modello per uso generico predefinito di computing, Autopilot gestisce il dimensionamento e l'allocazione le classi di computing richieste in base ai pod in esecuzione. Puoi richiedere di calcolo a livello di pod per ottimizzare l'efficienza in termini di costi scegliendo alle esigenze di ciascun pod.

Scegli un'architettura CPU specifica

Se i tuoi carichi di lavoro sono progettati per piattaforme o architetture CPU specifiche, può selezionare quelle piattaforme o architetture nel pod specifiche. Ad esempio, se vuoi che i tuoi pod vengano eseguiti su nodi che utilizzano Architettura ARM, puoi scegliere arm64 all'interno della classe di computing Scale-Out.

Prezzi

I prezzi dei pod GKE Autopilot si basano sui nodi in cui vengono pianificati i pod. Per informazioni sui prezzi dei carichi di lavoro per uso generico e Spot pod su specifiche classi di computing e per informazioni su qualsiasi per impegno di utilizzo, consulta 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 computing specifiche

La tabella seguente fornisce una panoramica tecnica delle classi di computing supportato da Autopilot e casi d'uso di esempio per i pod in esecuzione ogni piattaforma. Se non richiedi una classe di computing, Autopilot inserisce i tuoi pod sulla piattaforma di computing per uso generico, progettata per eseguire carichi di lavoro in modo ottimale.

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 usa la piattaforma di computing per uso generico non richiede esplicitamente una classe di computing nella specifica del pod.

Non puoi selezionare esplicitamente la piattaforma per uso generico in la tua specifica.

È supportata dalla serie di macchine E2.

  • Server web
  • Database medio-piccoli
  • Ambienti di sviluppo
Carichi di lavoro che richiedono GPU Accelerator
  • I pod possono accedere alle risorse di computing in qualsiasi momento
  • Nessun limite di memoria dei pod o CPU

I tipi di GPU compatibili sono i seguenti:

  • nvidia-h100-80gb: NVIDIA H100 (80 GB) (disponibile solo con la classe di calcolo Accelerator)
  • nvidia-a100-80gb: NVIDIA A100 (80GB)
  • nvidia-tesla-a100: NVIDIA A100 (40GB)
  • nvidia-l4: NVIDIA L4
  • nvidia-tesla-t4: NVIDIA T4

  • Addestramento e inferenza AI/ML incentrati su GPU
Richieste di CPU o memoria superiori ai limiti della classe di calcolo per uso generico o a piattaforme CPU specifiche Balanced
  • CPU disponibili: AMD EPYC Rome, AMD EPYC Milan, Intel Ice Lake, Intel Cascade Lake
  • Architettura disponibile: amd64
  • Richieste di risorse supportate più grandi rispetto a quelle per uso generico
  • Possibilità di impostare piattaforme CPU minime per i pod, ad esempio "Intel Ice Lake o superiore".

Con il sostegno del Serie di macchine N2 (Intel) o Serie di macchine N2D (AMD).

  • Server web
  • Database medio-grandi
  • Memorizzazione nella cache
  • Streaming e pubblicazione di contenuti multimediali
  • Velocità effettiva Hyperdisk e archiviazione estrema
Carichi di lavoro ad alta intensità di CPU come addestramento AI/ML o computing ad alte prestazioni (HPC) Performance
  • Architettura disponibile: amd64, arm64
  • I pod possono accedere alle risorse di computing in qualsiasi momento
  • Nessun limite di memoria dei pod o CPU

Per un elenco delle serie di macchine Compute Engine disponibili la classe Performance Compute, vedi Serie di macchine supportate.

  • Addestramento e inferenza AI/ML incentrati sulla CPU
  • Carichi di lavoro batch HPC
  • Hyperdisk Bilanciata, velocità effettiva e spazio di archiviazione estremo
Computing thread-per-core singolo e scalabilità orizzontale Scale-Out
  • CPU disponibili: Ampere Altra ARM o AMD EPYC Milan
  • Famiglia di macchine Compute Engine: T2A (Arm), T2D (x86)
  • Architettura disponibile: arm64 o amd64
  • SMT disattivato. Una vCPU equivale a un core fisico.
  • Orologio massimo 3,5 GHz

Con il sostegno del Serie di macchine Tau T2A (Arm) o il Serie di macchine Tau T2D (x86).

  • Server web
  • Microservizi containerizzati
  • Elaborazione dei log di dati
  • App Java su larga scala
  • Archiviazione della velocità effettiva Hyperdisk

Come selezionare una classe di computing in Autopilot

Per istruzioni dettagliate, consulta Scegli le classi di calcolo per i pod Autopilot.

Per indicare ad Autopilot di posizionare i pod in una classe di computing specifica, specificare l'etichetta cloud.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 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 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 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 istruzioni, consulta Eseguire carichi di lavoro ad alta intensità di CPU con prestazioni ottimali.

Quando esegui il deployment del carico di lavoro, Autopilot fa quanto segue:

  • Per eseguire i pod, esegue automaticamente il provisioning dei nodi supportati dalla configurazione specificata.
  • Aggiunge automaticamente incompatibilità ai nuovi nodi per impedire che altri pod eseguano la pianificazione su quei nodi. La le incompatibilità sono univoche per ogni classe di computing. Se selezioni anche una CPU dell'architettura, GKE aggiunge un'incompatibilità separata e unica dell'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:

  1. Autopilot aggiunge un'incompatibilità specifica a Scale-Out per questi nodi.
  2. Autopilot aggiunge una tolleranza per questa incompatibilità ai pod Scale-Out.

I pod che non richiedono Scale-Out non avranno la tolleranza. Di conseguenza, GKE non pianificherà questi pod sui nodi Scale-Out.

Se non richiedi esplicitamente una classe di computing nella specifica del carico di lavoro, Autopilot pianifica i pod su nodi che utilizzano di computing. 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 computing, come Bilanciato o Scale out, supportano più architetture CPU. Puoi Richiede un'architettura specifica insieme a quella della classe di computing specificando un'etichetta nel selettore di nodi o nella regola di affinità dei nodi, come nell'esempio che segue:

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.

Armi l'architettura su Autopilot

Autopilot supporta le richieste per nodi che utilizzano la CPU ARM dell'architettura. I nodi ARM sono più efficienti in termini di costi 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 garantire che richieste di classe di computing e architettura nel selettore di nodi o nell'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.
  • Selezionata solo un'architettura.
  • 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à a livello di regione 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 supportata.
Scale-Out Tutte le regioni che contengono un modello di macchine virtuali. Per visualizzare la disponibilità di serie di macchine specifiche, utilizza la filtra 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