Scelta della piattaforma CPU minima


Questa pagina mostra come specificare una piattaforma CPU minima per i nodi nei cluster Google Kubernetes Engine (GKE).

Perché scegliere una piattaforma CPU minima?

Specificare una piattaforma CPU minima è utile se hai bisogno di funzionalità e specifiche della CPU specifiche, come una frequenza di base elevata o una funzionalità di gestione dell'alimentazione ottimizzata.

Alcuni carichi di lavoro avanzati ad alta intensità di calcolo nei settori della grafica, dei giochi e dell'analisi possono sfruttare le funzionalità specifiche disponibili tramite diversi set di funzionalità della piattaforma CPU, quali AVX-2 e AVX-512. La scelta di una piattaforma CPU specifica può determinare incrementi sostanziali in termini di tempo di esecuzione e prestazioni. Se specifica una piattaforma CPU minima, i tuoi carichi di lavoro possono ottenere questi miglioramenti in modo più prevedibile e puoi garantire che i tuoi nodi non utilizzino mai una piattaforma CPU inappropriata per i loro carichi di lavoro.

Come scegliere una piattaforma

La seguente tabella mostra come scegliere una piattaforma CPU minima in base a come utilizzi GKE:

Ambito Descrizione Configurazione del cluster supportata
Livello di carico di lavoro (consigliato)

Scegli una piattaforma minima nella specifica del pod. GKE pianifica i pod nel modo seguente:

  • Autopilot: GKE pianifica i pod sui nodi con la piattaforma specificata o versioni successive.
  • Standard: GKE pianifica solo i pod su nodi con la piattaforma specificata. Ad esempio, se esiste un pool di nodi Intel Ice Lake e nuovi pod richiedono un minimo di Intel Cascade Lake, GKE crea un nuovo pool di nodi con Intel Cascade Lake, anche se Intel Ice Lake è una piattaforma più avanzata.

A livello di nodo e cluster Scegli una piattaforma CPU minima quando crei un nuovo cluster o pool di nodi in modalità Standard. Questa impostazione non supporta il provisioning automatico dei nodi. Per le istruzioni, vai a Scegliere una piattaforma CPU minima a livello del pool di nodi. Nuovo cluster standard o pool di nodi

Prezzi

Puoi scegliere una piattaforma CPU minima senza costi aggiuntivi.

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.

Controlla la disponibilità della piattaforma CPU

Le piattaforme CPU disponibili variano in base alla zona di calcolo in cui vengono eseguiti i nodi. Dovresti controllare quali piattaforme CPU sono disponibili in una zona anche se utilizzi cluster Autopilot o cluster Standard a livello di regione.

Per verificare le piattaforme disponibili in una zona specifica, esegui questo comando:

gcloud compute zones describe COMPUTE_ZONE

Sostituisci COMPUTE_ZONE con il nome di una zona, ad esempio us-central1-a. Se utilizzi un tipo di cluster a livello di regione, specifica il nome di una zona in quella regione.

L'output è simile al seguente:

availableCpuPlatforms:
- Intel Ice Lake
- Intel Cascade Lake
- Intel Skylake
- Intel Broadwell
- Intel Haswell
- Intel Ivy Bridge
- Intel Sandy Bridge
- AMD Milan
- AMD Rome
- Ampere Altra
- Intel Sapphire Rapids

Quando utilizzi questi valori per richiedere una piattaforma CPU minima, sostituisci gli spazi con trattini bassi nel nome della piattaforma. Ad esempio, AMD_Milan.

Scegli una piattaforma CPU minima a livello di carico di lavoro

Se utilizzi cluster GKE Autopilot o GKE Standard con provisioning automatico dei nodi, puoi scegliere una piattaforma CPU minima nella specifica del pod. Quando esegui il deployment del carico di lavoro, GKE pianifica i pod solo sui nodi che hanno la piattaforma specificata o una versione più recente. Ti consigliamo questo metodo.

Autopilot

In Autopilot, richiedi una piattaforma CPU minima e una classe di calcolo. La classe Compute deve supportare la piattaforma CPU. Autopilot supporta la selezione di una piattaforma CPU minima per la classe di computing Balanced. Per un elenco delle piattaforme CPU disponibili in ogni classe di computing, vedi Quando utilizzare classi di computing specifiche.

Salva il seguente manifest come min-cpu.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: min-cpu-platform
  labels:
    app: min-cpu
spec:
  replicas: 3
  selector:
    matchLabels:
      app: min-cpu
  template:
    metadata:
      labels:
        app: min-cpu
    spec:
      nodeSelector:
        cloud.google.com/compute-class: "COMPUTE_CLASS"
        supported-cpu-platform.cloud.google.com/PLATFORM: "true"
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: 250m

Sostituisci quanto segue:

  • PLATFORM: il nome della piattaforma CPU, ad esempio AMD_Milan. Il nome della piattaforma è sensibile alle maiuscole e deve essere delimitato dal trattino basso.
  • COMPUTE_CLASS: il nome della classe Compute, che deve essere Balanced.

Standard

Nei cluster Standard in cui è abilitato il provisioning automatico dei nodi, richiedi una piattaforma CPU insieme a una famiglia di macchine Compute Engine. La famiglia di macchine deve supportare la piattaforma CPU. Per un elenco delle piattaforme supportate per ogni famiglia di macchine, consulta l'articolo Piattaforme CPU di Compute Engine.

Salva il seguente manifest come min-cpu.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: min-cpu-platform
  labels:
    app: min-cpu
spec:
  replicas: 3
  selector:
    matchLabels:
      app: min-cpu
  template:
    metadata:
      labels:
        app: min-cpu
    spec:
      nodeSelector:
        cloud.google.com/machine-family: MACHINE_FAMILY
        cloud.google.com/requested-min-cpu-platform: PLATFORM
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: 250m

Sostituisci quanto segue:

  • PLATFORM: il nome della piattaforma CPU, ad esempio AMD_Milan. Il nome della piattaforma è sensibile alle maiuscole e deve essere delimitato dal trattino basso.
  • MACHINE_FAMILY: il nome della famiglia di macchine, ad esempio n2d.

Esegui il deployment del carico di lavoro:

kubectl apply -f min-cpu.yaml

I nodi mantengono la stessa piattaforma per tutto il loro ciclo di vita, a meno che non venga ritirata la piattaforma CPU specificata. In questo caso, i nodi vengono eseguiti su una piattaforma più recente.

Scegli una piattaforma CPU minima a livello di pool di nodi

Per i cluster GKE Standard senza provisioning automatico dei nodi, puoi specificare una piattaforma CPU minima quando crei un nuovo cluster o un pool di nodi. Dovresti utilizzare questo approccio solo se non puoi utilizzare l'impostazione a livello di carico di lavoro. Questa impostazione non influisce sul provisioning automatico dei nodi.

gcloud

Per creare un nuovo pool di nodi con una piattaforma CPU minima utilizzando gcloud CLI, imposta il flag --min-cpu-platform e specifica il nome della piattaforma CPU:

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --region COMPUTE_REGION \
    --min-cpu-platform PLATFORM

Sostituisci quanto segue:

  • POOL_NAME: il nome del nuovo pool di nodi.
  • CLUSTER_NAME: il nome del tuo cluster.
  • COMPUTE_REGION: la regione per il cluster.
  • PLATFORM: la piattaforma CPU che vuoi eseguire nel pool di nodi, ad esempio "Intel Broadwell".

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.

  3. Fai clic su Aggiungi pool di nodi.

  4. Configura il pool di nodi come preferisci.

  5. Nel riquadro di navigazione, fai clic su Nodi.

  6. In Configurazione macchina,

  7. Nell'elenco a discesa Serie, seleziona un tipo di macchina.

  8. Nell'elenco a discesa Tipo di macchina, seleziona Personalizzato.

  9. Seleziona Core e Memoria, a seconda delle esigenze.

  10. Fai clic su Piattaforma CPU e GPU.

  11. Nell'elenco a discesa Piattaforma CPU, seleziona la piattaforma che ti interessa.

  12. Fai clic su Crea.

API

Includi la proprietà minCpuPlatform nel campo nodeConfig nel corpo della richiesta. Il valore di minCpuPlatform deve essere il nome della piattaforma, ad esempio Intel Haswell, Intel Broadwell e Intel Sandy Bridge.

Ad esempio, la seguente richiesta crea un nuovo pool di nodi che esegue la piattaforma Intel Broadwell:

POST https://container.googleapis.com/v1/projects/PROJECT_ID/regions/COMPUTE_REGION/clusters/CLUSTER_NAME/nodePools

{
  'nodePool': {
    'name': 'POOL_NAME',
    'nodeConfig': {
      'minCpuPlatform': 'Intel Broadwell'
      ...
    }
    ...
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • COMPUTE_REGION: la regione per il cluster.
  • CLUSTER_NAME: il nome del tuo cluster.
  • POOL_NAME: il nome del nuovo pool di nodi.

Se specifichi la piattaforma quando crei un cluster, l'impostazione minima della piattaforma CPU si applica al pool di nodi predefinito nel nuovo cluster.

Alternative

GKE ti consente anche di selezionare le piattaforme minime della CPU utilizzando i seguenti metodi:

Alternative

Flag a livello di cluster

Flag --autoprovisioning-min-cpu-platform

Limitazioni

Le seguenti limitazioni si applicano a tutti i metodi per selezionare una piattaforma CPU minima:

  • Si applicano tutte le limitazioni delle piattaforme con CPU minima di Compute Engine.
  • La disponibilità di piattaforme CPU specifiche varia a seconda della zona.
  • Il tipo di macchina E2 non supporta piattaforme CPU minime. Devi selezionare un tipo di macchina diverso.
  • I cluster Autopilot supportano solo la selezione della piattaforma per la classe di computing Balanced, non per le classi di computing predefinite o Scale-Out.
  • Se il carico di lavoro Autopilot richiede più di 80 vCPU, la piattaforma CPU minima deve essere Intel Ice Lake o versione successiva. Se specifichi una piattaforma meno avanzata, il pod potrebbe rimanere nello stato Pending a tempo indeterminato.

La seguente limitazione si applica all'impostazione della piattaforma CPU minima del cluster o del pool di nodi:

Se selezioni una piattaforma CPU minima meno avanzata della piattaforma CPU predefinita nella zona, o se la piattaforma selezionata non è più disponibile, GKE controlla se è disponibile una piattaforma più recente allo stesso costo. Se esiste una piattaforma più recente allo stesso costo, GKE crea i nodi utilizzando la piattaforma più recente. Se non esiste una piattaforma più recente con lo stesso costo, la creazione del cluster o del pool di nodi non va a buon fine.

Passaggi successivi