Scegli le classi di computing per i pod Autopilot


Questa pagina mostra come selezionare classi di computing specifiche per eseguire carichi di lavoro con requisiti hardware unici nei cluster Autopilot di Google Kubernetes Engine (GKE). Prima di iniziare, acquisisci familiarità con il concetto di classi di calcolo 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 a traffico elevato in tempo reale.

Queste classi di calcolo sono un sottoinsieme della serie di macchine di Compute Engine e offrono flessibilità oltre la classe di calcolo generica predefinita di Autopilot. 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 normali pod Autopilot o i tuoi pod Spot per richiedere nodi supportati da queste classi di computing. Puoi anche richiedere un'architettura CPU specifica, ad esempio Arm, nelle classi di calcolo che supportano quell'architettura.

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
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installa e initialize gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente eseguendo gcloud components update.

Richiedi una classe di computing nel 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.

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

Specifica le richieste di risorse

Quando scegli una classe di computing, assicurati di specificare le richieste di risorse per i tuoi pod in base alle richieste di risorse minime e massime per la classe selezionata. Se le richieste sono inferiori al minimo, Autopilot ne fa automaticamente lo scale up. Tuttavia, se le richieste sono superiori al massimo, Autopilot non esegue il deployment dei pod e mostra un messaggio di errore.

Scegli un'architettura CPU

Alcune classi di calcolo supportano diverse architetture di CPU. Ad esempio, la classe Scale-Out supporta sia le architetture Arm che 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 nel selettore dei nodi o nella regola di affinità dei nodi, insieme alla richiesta della classe di computing. La classe di computing richiesta deve supportare l'architettura della CPU specificata.

Per le istruzioni, consulta Eseguire il deployment dell'architettura di pod Autopilot su ARM.

Passaggi successivi