Questa pagina mostra come configurare i deployment GKE Autopilot per richiedere nodi basati sull'architettura Arm.
Informazioni sull'architettura Arm in Autopilot
I cluster Autopilot offrono
classi di computing
per i carichi di lavoro con requisiti hardware specifici. Alcune di queste classi di calcolo supportano più architetture CPU, come amd64 e arm64.
Casi d'uso per i nodi Arm
I nodi con architettura Arm offrono prestazioni più convenienti rispetto a nodi x86 simili. Devi selezionare Arm per i tuoi workload Autopilot in situazioni come le seguenti:
- Il tuo ambiente si basa sull'architettura Arm per la creazione e il test.
- Stai sviluppando applicazioni per dispositivi Android che vengono eseguite su CPU Arm.
- Utilizzi immagini multi-architettura e vuoi ottimizzare i costi durante l'esecuzione dei tuoi workload.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza
gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo il comando
gcloud components update. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
- Esamina i requisiti e le limitazioni per i nodi Arm.
- Per utilizzare ComputeClass
autopilot-arm, assicurati che il cluster esegua GKE versione 1.35.3-gke.1389000 o successive. - Assicurati di avere una quota per i tipi di macchine Compute Engine C4A, N4A o Tau T2A.
- Assicurati di avere un pod con un'immagine container creata per l'architettura Arm.
Come richiedere nodi Arm in Autopilot
Per indicare ad Autopilot di eseguire i pod sui nodi Arm, utilizza uno dei seguenti metodi, a seconda dei tuoi requisiti. Questi vengono specificati utilizzando una regola nodeSelector o di affinità nodo:
- Per i workload per uso generico:richiedi la piattaforma Arm ottimizzata per i container specificando entrambi i seguenti elementi:
cloud.google.com/compute-class: autopilot-armkubernetes.io/arch: arm64
Per i workload con requisiti hardware specifici:specifica una delle seguenti opzioni:
kubernetes.io/arch: arm64. GKE posiziona i pod sui tipi di macchineC4Aper impostazione predefinita per i cluster che eseguono la versione 1.31.3-gke.1056000 e successive. Se il cluster esegue una versione precedente, GKE posiziona i pod sui tipi di macchineT2A.cloud.google.com/machine-family: ARM_MACHINE_SERIES. SostituisciARM_MACHINE_SERIEScon una serie di macchine Arm comeC4A,N4AoT2A. GKE posiziona i pod nella serie specificata.
Per impostazione predefinita, l'utilizzo di una qualsiasi delle etichette, ad eccezione di Performance, consente a GKE di posizionare altri pod sullo stesso nodo se è disponibile capacità su quel nodo.
Per richiedere un nodo dedicato per ogni pod, aggiungi l'etichetta
cloud.google.com/compute-class: Performance al manifest insieme
alle etichette dell'architettura o della famiglia di macchine. Per maggiori dettagli, vedi
Ottimizzare il rendimento di Autopilot Pod scegliendo una serie di macchine.
In alternativa, puoi utilizzare l'etichetta Scale-Out con l'etichetta arm64 per richiedere T2A.
Puoi anche richiedere l'architettura Arm per i pod spot.
Quando esegui il deployment del workload, Autopilot esegue le seguenti operazioni:
- Esegue automaticamente il provisioning dei nodi Arm per eseguire i pod.
- Contrassegna automaticamente i nuovi nodi per impedire la pianificazione di pod non Arm su questi nodi.
- Aggiunge automaticamente una tolleranza ai pod Arm per consentire la pianificazione sui nuovi nodi.
Esempio di richiesta per l'architettura Arm
Le seguenti specifiche di esempio mostrano come utilizzare un selettore di nodi o una regola di affinità dei nodi per richiedere l'architettura Arm in Autopilot.
nodeSelector
Il seguente manifest di esempio richiede un nodo Arm ottimizzato per i container Autopilot:
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: autopilot-arm
kubernetes.io/arch: arm64
containers:
- name: nginx-arm
image: nginx
resources:
requests:
cpu: 2000m
memory: 2Gi
Per richiedere hardware specifico anziché nodi ottimizzati per i container Autopilot, sostituisci
autopilot-arm con Performance o Scale-Out in nodeSelector.
nodeAffinity
Puoi utilizzare l'affinità dei nodi per richiedere nodi Arm.
Il seguente manifest di esempio richiede un nodo Arm ottimizzato per i container Autopilot:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-arm
spec:
replicas: 3
selector:
matchLabels:
app: nginx-arm
template:
metadata:
labels:
app: nginx-arm
spec:
terminationGracePeriodSeconds: 25
containers:
- name: nginx-arm
image: nginx
resources:
requests:
cpu: 2000m
memory: 2Gi
ephemeral-storage: 1Gi
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: cloud.google.com/compute-class
operator: In
values:
- autopilot-arm
- key: kubernetes.io/arch
operator: In
values:
- arm64
Per richiedere hardware specifico anziché nodi ottimizzati per i container Autopilot, sostituisci
autopilot-arm con Performance o Scale-Out nelle regole nodeAffinity.
Consigli
- Crea e utilizza immagini multi-arch come parte della tua pipeline. Le immagini multi-architettura assicurano che i pod vengano eseguiti anche se sono posizionati su nodi x86.
- Richiedi esplicitamente le classi di architettura e di calcolo nei manifest dei workload. In caso contrario, Autopilot utilizza l'architettura predefinita della classe di computing selezionata, che potrebbe non essere Arm.
Disponibilità
Puoi eseguire il deployment dei carichi di lavoro Autopilot sull'architettura Arm nelle seguenti regioni: us-east1, us-west1, europe-west1, europe-west4 e us-central1.
Risoluzione dei problemi
Per informazioni su errori comuni e risoluzione dei problemi, consulta la sezione Risoluzione dei problemi dei carichi di lavoro Arm.
Passaggi successivi
- Scopri di più sull'architettura dei cluster Autopilot.
- Scopri di più sul ciclo di vita dei pod.
- Scopri di più sulle classi di computing Autopilot disponibili.
- Scopri di più sulle richieste di risorse predefinite, minime e massime per ogni piattaforma.