Esegui carichi di lavoro ad alta intensità di CPU con prestazioni ottimali


Questa pagina mostra come ottimizzare le prestazioni dei carichi di lavoro che richiedono un uso intensivo della CPU utilizzando nodi dedicati per ogni pod posizionato da Google Kubernetes Engine (GKE) ogni pod sul proprio nodo, con e l'accesso a tutte le risorse del nodo. Per utilizzare questo modello di posizionamento dei pod, richiedi la performance classe di computing nei tuoi carichi di lavoro Autopilot.

Vantaggi della classe di computing delle prestazioni

I nodi dedicati per pod sono ideali quando esegui su larga scala un uso intensivo della CPU carichi di lavoro che potrebbero richiedere l'accesso a funzionalità o una macchina virtuale (VM). Ad esempio, carichi di lavoro per l'addestramento AI/ML ad alta intensità di CPU carichi di lavoro batch per il computing delle prestazioni (HPC).

I pod su questi nodi dedicati offrono i seguenti vantaggi:

  • Prestazioni prevedibili: accedi a tutte le risorse dei nodi in qualsiasi momento.
  • Carichi di lavoro eseguibili: se non imposti limiti per le risorse nei manifest, i pod delle classi Performance possono esaurire tutta la capacità inutilizzata con il rischio minimo di eliminazione della pressione dei nodi da parte di Kubernetes.

Come funzionano i pod delle classi prestazioni

Devi eseguire il deployment di un pod con le seguenti caratteristiche:

  • Seleziona la classe delle prestazioni e una serie di macchine Compute Engine.
  • Specifica le richieste di risorse e, idealmente, non specifica limiti per le risorse

GKE fa quanto segue:

  • Garantisce che il pod di cui è stato eseguito il deployment richieda almeno risorse minime per la classe di computing
  • Calcola le richieste totali di risorse del pod di cui è stato eseguito il deployment e di qualsiasi DaemonSet nel cluster
  • Esegue il provisioning di un nodo supportato dalla serie di macchine selezionata
  • Modifica il manifest del pod con una combinazione di selettori di nodi e per garantire che il pod venga eseguito sul proprio nodo

Compatibilità con altre funzionalità di GKE

Puoi usare i pod di classe Performance con i seguenti caratteristiche e funzionalità:

I pod spot e i pod con tempo di esecuzione esteso si escludono a vicenda. GKE non applica richieste di risorse minime più elevate Pod delle classi di prestazioni che utilizzano la separazione dei carichi di lavoro.

Prezzi

Il tuo pod può utilizzare in qualsiasi momento l'intera VM sottostante e qualsiasi hardware collegato e ti viene addebitato il costo di questo hardware da Compute Engine, per la gestione e la scalabilità dei nodi Autopilot. Per maggiori dettagli, vedi Prezzi di GKE.

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à, install e poi initialize con gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente eseguendo gcloud components update.
  • Assicurati di conoscere i seguenti aspetti:
  • Assicurati di avere una versione in esecuzione del cluster Autopilot esistente 1.28.6-gke.1369000 e versioni successive o versione 1.29.1-gke.1575000 e successive. Per creare un cluster, consulta Crea un cluster Autopilot.

Connessione al tuo cluster

Utilizza Google Cloud CLI per connetterti al tuo cluster Autopilot:

gcloud container clusters get-credentials CLUSTER_NAME \
    --location=LOCATION

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo cluster.
  • LOCATION: il Compute Engine località del cluster.

Deployment di un pod di classe Performance

  1. Salva il seguente manifest come perf-class-pod.yaml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: performance-pod
    spec:
      nodeSelector:
        cloud.google.com/compute-class: Performance
        cloud.google.com/machine-family: MACHINE_SERIES
      containers:
      - name: my-container
        image: "k8s.gcr.io/pause"
        resources:
          requests:
            cpu: 20
            memory: "100Gi"
    

    Sostituisci MACHINE_SERIES con di Compute Engine per il tuo pod, ad esempio c3. Per supportati vedi Serie di macchine supportate in questo documento.

  2. Esegui il deployment del pod:

    kubectl apply -f perf-class-pod.yaml
    

Utilizzare gli SSD locali nei pod di classe Performance

I pod delle classi di prestazioni possono utilizzare gli SSD locali per l'archiviazione temporanea se selezioni una che include un SSD locale. GKE considera temporaneo di archiviazione durante il provisioning di un nodo per il pod della classe Performance.

  1. Salva il seguente manifest come perf-class-ssd-pod.yaml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: performance-pod
    spec:
      nodeSelector:
        cloud.google.com/compute-class: Performance
        cloud.google.com/machine-family: MACHINE_SERIES
        cloud.google.com/gke-ephemeral-storage-local-ssd: "true"
      containers:
      - name: my-container
        image: "k8s.gcr.io/pause"
        resources:
          requests:
            cpu: 12
            memory: "50Gi"
            ephemeral: "200Gi"
    

    Sostituisci MACHINE_SERIES con un serie di macchine supportate che supportano anche SSD locali. Se la serie di macchine specificata non supporta gli SSD locali, il deployment non va a buon fine con un errore.

  2. Esegui il deployment del pod:

    kubectl apply -f perf-class-pod.yaml
    

Serie di macchine supportate

La classe di computing delle prestazioni supporta le seguenti serie di macchine:

Per confrontare queste serie di macchine e i relativi casi d'uso, consulta Confronto di serie di macchine nella documentazione di Compute Engine.

Come GKE seleziona una dimensione della macchina

Per selezionare una dimensione della macchina nella serie di macchine specificata, calcola le richieste totali di CPU, memoria e spazio di archiviazione il pod della classe Performance e tutti gli oggetti DaemonSet che verranno eseguiti sul nuovo nodo. GKE arrotonda questi valori al valore più vicino disponibile tipo di macchina Compute Engine che supporta tutti questi totali.

  • Esempio 1: considera un pod di classe Performance che seleziona la macchina C3 Google Cloud. Le richieste di risorse totali, inclusi i DaemonSet, sono le seguenti:

    • 70 vCPU
    • 200 GiB di memoria

    GKE posiziona il pod su un nodo supportato tipo di macchina c3-standard-88, con 88 vCPU e 352 GB di la memoria.

  • Esempio 2: considera un pod di classe Performance che seleziona la macchina C3D e SSD locali per l'archiviazione temporanea. Le richieste di risorse totali inclusi i DaemonSet:

    • 12 vCPU
    • 50 GiB di memoria
    • 200 GiB di spazio di archiviazione temporaneo

    GKE posiziona il pod su un nodo che utilizza Tipo di macchina c3d-standard-16-lssd, con 16 vCPU, 64 GiB e 365 GiB di capacità SSD locale.

Passaggi successivi