Scegliere le classi di calcolo per i pod Autopilot


Questo documento mostra come selezionare classi di computing specifiche per eseguire carichi di lavoro avere requisiti hardware univoci in Google Kubernetes Engine (GKE) Autopilot. Prima di leggere questo documento, assicurati di conoscere bene il concetto delle classi di computing in GKE Autopilot.

Panoramica delle classi di calcolo di Autopilot

Autopilot offre classi di computing progettate per eseguire carichi di lavoro con requisiti hardware specifici. Queste classi di computing è utile per carichi di lavoro come attività di machine learning e AI o per l'esecuzione in tempo reale a traffico elevato.

Queste classi di calcolo sono un sottoinsieme delle serie di macchine Compute Engine e offrono una flessibilità superiore alla classe di calcolo generica predefinita di Autopilot. Ad esempio, la classe Scale-Out disattiva il multi-threading simultaneo in modo che ogni vCPU è un singolo core fisico.

In base alle tue esigenze specifiche, puoi configurare i pod Autopilot o Spot regolari per richiedere nodi supportati da queste classi di calcolo. Puoi anche richiedere un'architettura della CPU specifica, ad esempio Arm, nei classi di calcolo che supportano questa architettura.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Attiva l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installa e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente eseguendo gcloud components update.

Richiedere una classe di calcolo nel 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 anche specificare 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 dei 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 della classe di calcolo 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.

Puoi anche richiedere classi di calcolo specifiche per i tuoi pod Spot.

Specifica le richieste di risorse

Quando scegli una classe di computing, assicurati di specificare richieste di risorse per i tuoi pod in base Richieste di risorse minime e massime per il corso selezionato. Se le richieste sono inferiori al numero minimo, Autopilot esegue automaticamente lo scale up delle richieste. Tuttavia, se le tue superiori al limite massimo, Autopilot non esegue di pod e visualizza un messaggio di errore.

Scegli un'architettura della CPU

Alcune classi di calcolo supportano più architetture CPU. Ad esempio, la classeScale-Out supporta sia le architetture ARM che x86. Se non richiedi un'architettura specifica, Autopilot esegue il provisioning di nodi che hanno l'architettura predefinita della classe di calcolo specificata. Se i pod devono utilizzare un'architettura diversa, richiedi questa architettura nel selettore dei nodi o nella regola di affinità dei nodi, insieme alla richiesta della classe di calcolo. La classe di calcolo richiesta deve supportare l'architettura della CPU specificata.

Per le istruzioni, consulta Eseguire il deployment di pod Autopilot sull'architettura Arm.

Passaggi successivi