Classi di computing in Autopilot


Questa pagina descrive le classi di computing che puoi utilizzare per eseguire i carichi di lavoro Autopilot di Google Kubernetes Engine (GKE) che hanno requisiti hardware specifici. Per le istruzioni, consulta Eseguire i pod Autopilot su classi di calcolo specifiche.

Panoramica delle classi di computing Autopilot

Per impostazione predefinita, i pod GKE Autopilot vengono eseguiti su una piattaforma di computing ottimizzata per carichi di lavoro generici come servizi web e job batch a media intensità. Questa piattaforma generale fornisce una configurazione hardware affidabile e con ottimizzazione dei costi in grado di gestire i requisiti della maggior parte dei carichi di lavoro.

Se hai carichi di lavoro con requisiti hardware unici, come l'esecuzione di attività di machine learning o di AI, l'esecuzione di database ad alto traffico in tempo reale o l'esigenza di piattaforme e architetture specifiche della CPU, Autopilot offre classi di calcolo. Queste classi di computing sono un sottoinsieme selezionato della serie di macchine di Compute Engine e offrono flessibilità oltre la classe di calcolo predefinita di Autopilot. Ad esempio, la classe di computing Scale-Out utilizza VM che disattivano il multi-threading simultaneo e sono ottimizzate per lo scale out.

Puoi richiedere nodi supportati da classi di computing specifiche in base ai requisiti di ciascuno dei tuoi carichi di lavoro. Analogamente alla classe di calcolo generica predefinita, Autopilot gestisce il dimensionamento e l'allocazione delle risorse delle classi di computing richieste in base ai pod in esecuzione. Puoi richiedere classi di calcolo a livello di pod per ottimizzare l'efficienza dei costi scegliendo la soluzione più adatta alle esigenze di ogni pod.

Scegli un'architettura CPU specifica

Se i carichi di lavoro sono progettati per piattaforme o architetture CPU specifiche, puoi facoltativamente selezionare queste piattaforme o architetture nelle specifiche dei pod. Ad esempio, se vuoi che i tuoi pod vengano eseguiti su nodi che utilizzano l'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 sono pianificati. Per informazioni sui prezzi per carichi di lavoro generici e pod spot su specifiche classi di calcolo, nonché per informazioni su eventuali sconti per impegno di utilizzo, consulta la pagina relativa ai prezzi della modalità Autopilot.

I pod spot su classi di calcolo generiche o specializzate non sono idonei agli sconti per impegno di utilizzo.

Quando utilizzare classi di computing specifiche

La tabella seguente fornisce una panoramica tecnica delle classi di computing supportate da Autopilot e dei casi d'uso di esempio per i pod in esecuzione su ogni piattaforma. Se non richiedi una classe di computing, Autopilot posiziona i pod nella piattaforma di computing generica, progettata per eseguire in modo ottimale la maggior parte dei carichi di lavoro.

Requisito di carico di lavoro Classe di computing Descrizione Esempi di casi d'uso
Carichi di lavoro che non richiedono hardware specifico Per uso generico

Autopilot utilizza la piattaforma di computing generica se non richiedi esplicitamente una classe di computing nella specifica del pod.

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

Supportato dalla serie di macchine E2.

  • Server web
  • Database di piccole e medie dimensioni
  • 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 o CPU del pod

I tipi di GPU compatibili sono i seguenti:

  • nvidia-h100-80gb: NVIDIA H100 (80 GB) (disponibile solo con classe di computing 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 massimi delle classi 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 minima per i pod, ad esempio "Intel Ice Lake o superiore".

Supportato dalla serie di macchine N2 (Intel) o dalla serie di macchine N2D (AMD).

  • Server web
  • Database di medie e grandi dimensioni
  • Memorizzazione nella cache
  • Streaming e pubblicazione di contenuti multimediali
  • Velocità effettiva Hyperdisk e spazio di archiviazione estremo
Carichi di lavoro che richiedono molte CPU come l'addestramento AI/ML o il 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 o CPU del pod

Per un elenco delle serie di macchine di Compute Engine disponibili con la classe di computing delle prestazioni, consulta Serie di macchine supportate.

  • Addestramento e inferenza AI/ML incentrati sulla CPU
  • Carichi di lavoro batch HPC
  • Archiviazione Hyperdisk bilanciata, con velocità effettiva ed Estremo
Computing singolo thread per core 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 disattivata. Una vCPU equivale a un core fisico.
  • Orologio massimo 3,5 GHz

Supportato dalla serie di macchine Tau T2A (Arm) o dalla serie di macchine Tau T2D (x86).

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

Come selezionare una classe di computing in Autopilot

Per istruzioni dettagliate, consulta Scegliere le classi di computing per i pod Autopilot.

Per indicare ad Autopilot di posizionare i pod in una classe di computing specifica, specifica l'etichetta cloud.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.

Quando esegui il deployment del carico di lavoro, Autopilot effettua le seguenti operazioni:

  • Per eseguire i pod, esegui automaticamente il provisioning dei nodi supportati dalla configurazione specificata.
  • Aggiunge automaticamente le incompatibilità ai nuovi nodi per impedire ad altri pod di pianificare su questi nodi. Le incompatibilità sono univoche per ogni classe di computing. Se selezioni anche un'architettura CPU, GKE aggiunge un'incompatibilità separata univoca per quell'architettura.
  • Aggiunge automaticamente le tolleranze corrispondenti alle incompatibilità applicate ai pod di cui è stato eseguito il deployment, consentendo a GKE di posizionare questi pod nei nuovi nodi.

Ad esempio, se richiedi la classe di computing Scale-Out per un pod:

  1. Autopilot aggiunge un'incompatibilità specifica di Scale-Out per i nodi.
  2. La modalità Autopilot aggiunge una tolleranza per quell'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 computing nella specifica dei carichi 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 per la classe di calcolo per uso generico.

Come richiedere un'architettura della CPU

In alcuni casi, i carichi di lavoro potrebbero essere creati per un'architettura specifica, ad esempio Arm. Alcune classi di calcolo, ad esempio Bilanciato o Scale out, supportano più architetture di CPU. Puoi richiedere un'architettura specifica insieme alla richiesta della classe di computing specificando un'etichetta nel selettore dei nodi o nella regola di affinità del nodo, 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 desiderata, ad esempio arm64 o amd64.

Se non richiedi esplicitamente un'architettura, Autopilot utilizza l'architettura predefinita della classe di computing specificata.

Architettura ARM su Autopilot

Autopilot supporta le richieste per i nodi che utilizzano l'architettura CPU ARM. I nodi ARM sono più efficienti in termini di costi rispetto a nodi x86 simili, offrendo al contempo miglioramenti delle prestazioni. Per istruzioni su come richiedere i nodi Arm, consulta Eseguire il deployment dei carichi di lavoro Autopilot sull'architettura ARM.

Assicurati di utilizzare le immagini corrette nei tuoi deployment. Se i pod utilizzano immagini ARM e non richiedi nodi Arm, Autopilot pianifica i pod sui nodi x86 e i pod si arrestano in modo anomalo. Allo stesso modo, se utilizzi accidentalmente immagini x86 ma richiedi nodi Arm per i pod, questi si arrestano 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 la classe di calcolo e le richieste di architettura nel selettore dei 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 computing non supportata.
  • La versione GKE deve supportare la classe Compute.
  • Non è stata selezionata più di un'architettura.
  • La classe Compute 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 computing

La seguente tabella descrive le regioni in cui sono disponibili architetture CPU e classi di computing specifiche:

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

Architettura ARM (arm64):

  • asia-southeast1
  • europe-west4
  • us-central1

Architettura x86 (amd64):

  • asia-east1
  • asia-southeast1
  • australia-southeast1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • southamerica-east1
  • us-central1
  • us-east1
  • us-east4
  • us-west1
  • us-west4

Se una classe di computing è disponibile in una regione specifica, l'hardware è disponibile in almeno due zone in quella regione.

Richieste di risorse predefinite, minime e massime

Quando scegli una classe di computing per i tuoi carichi di lavoro Autopilot, assicurati di specificare richieste di risorse che soddisfino le richieste minime e massime per quella classe di computing. Per informazioni sulle richieste predefinite, nonché sulle richieste minime e massime per ogni classe di computing, consulta Richieste e limiti di risorse in GKE Autopilot.

Passaggi successivi