Puoi utilizzare Balanced
e Scale-Out
ComputeClasses nei cluster Google Kubernetes Engine (GKE) Autopilot per eseguire workload che richiedono capacità di calcolo aggiuntiva o configurazioni CPU specializzate. Questa pagina è
destinata agli amministratori dei cluster che vogliono opzioni di calcolo più flessibili rispetto a
quelle fornite dalla configurazione predefinita del cluster Autopilot.
Panoramica delle ComputeClass bilanciate e di scalabilità orizzontale
Per impostazione predefinita, i pod nei cluster GKE Autopilot vengono eseguiti su una piattaforma di calcolo ottimizzata per i container. Questa piattaforma è ideale per carichi di lavoro generici come server web e job batch di media intensità. La piattaforma di computing ottimizzata per container fornisce una configurazione hardware affidabile, scalabile e ottimizzata per i costi in grado di gestire i requisiti della maggior parte dei workload.
Se hai carichi di lavoro con requisiti hardware unici (ad esempio l'esecuzione di attività di machine learning o AI, l'esecuzione di database ad alto traffico in tempo reale o la necessità di piattaforme e architetture CPU specifiche), puoi utilizzare ComputeClasses per eseguire il provisioning dell'hardware.
Solo nei cluster Autopilot, GKE fornisce le seguenti ComputeClass curate che ti consentono di eseguire pod che richiedono maggiore flessibilità rispetto alla piattaforma di computing ottimizzata per i container predefinita:
Balanced
: offre una capacità massima di CPU e memoria superiore rispetto alla piattaforma di calcolo ottimizzata per i container.Scale-Out
: disattiva il multi-threading simultaneo (SMT) ed è ottimizzato per lo scale out.
Queste ComputeClass sono disponibili solo nei cluster Autopilot. Analogamente alla piattaforma di calcolo ottimizzata per i container predefinita, Autopilot gestisce il dimensionamento dei nodi e l'allocazione delle risorse in base ai pod in esecuzione.
ComputeClasses personalizzate per una maggiore flessibilità
Se le ComputeClass bilanciate o di scalabilità orizzontale nei cluster Autopilot non soddisfano i requisiti del tuo workload, puoi configurare le tue ComputeClass.
Esegui il deployment delle risorse personalizzate Kubernetes ComputeClass nei cluster con set
di attributi dei nodi che GKE utilizza per configurare i nuovi nodi nel
cluster. Queste ComputeClass personalizzate possono, ad esempio, consentirti di eseguire il deployment dei workload
sullo stesso hardware delle ComputeClass Balanced
o Scale-Out
in qualsiasi
cluster GKE Autopilot o Standard. Per ulteriori
informazioni, consulta
Informazioni sui carichi di lavoro in modalità Autopilot in GKE Standard.
Prezzi
I pod che utilizzano le ComputeClass Balanced
o Scale-Out
vengono fatturati in base ai seguenti SKU:
Per maggiori informazioni, vedi Prezzi di GKE.
Dettagli tecnici bilanciati e di scalabilità orizzontale
Questa sezione descrive i tipi di macchine e i casi d'uso per le classi Balanced
e
Scale-Out
. Se non richiedi una ComputeClass nei tuoi pod, Autopilot posiziona i pod sulla piattaforma di calcolo ottimizzata per i container per impostazione predefinita. A volte potresti vedere ek
come serie di macchine dei nodi nei nodi Autopilot che utilizzano la piattaforma di calcolo ottimizzata per i container. Le macchine EK sono tipi di macchine E2 esclusivi di Autopilot.
La seguente tabella fornisce una panoramica tecnica delle ComputeClass Balanced
e
Scale-Out
.
ComputeClass bilanciate e di scale out | ||
---|---|---|
Balanced |
Fornisce una capacità di CPU e di memoria superiore ai valori massimi della piattaforma di calcolo ottimizzata per i container. Fornisce piattaforme CPU aggiuntive e la possibilità di impostare piattaforme CPU minime per i pod, come Intel Ice Lake o versioni successive.
Utilizza la classe
|
|
Scale-Out |
Fornisce il calcolo con un solo thread per core e la scalabilità orizzontale.
Utilizza la classe
|
Selezione di ComputeClass nei workload
Per utilizzare una ComputeClass per un workload GKE, seleziona la ComputeClass nel manifest del workload utilizzando un selettore di nodi per l'etichetta cloud.google.com/compute-class
.
Il seguente manifest di Deployment seleziona una ComputeClass:
Sostituisci COMPUTE_CLASS
con il nome di una ComputeClass, ad esempio Balanced
o Scale-Out
. Puoi selezionare al massimo una ComputeClass
in un workload.
Quando esegui il deployment del workload, GKE esegue le seguenti operazioni:
- Esegue automaticamente il provisioning dei nodi supportati dalla configurazione specificata per eseguire i tuoi pod.
- Aggiunge automaticamente etichette e taint ai nuovi nodi per impedire la pianificazione di altri pod su questi nodi. Le taint sono univoche per ogni ComputeClass. Se selezioni anche un'architettura CPU, GKE aggiunge un taint separato univoco per quell'architettura.
- Aggiunge automaticamente le tolleranze corrispondenti alle incompatibilità applicate ai pod di cui è stato eseguito il deployment, consentendo a GKE di posizionare questi pod sui nuovi nodi.
Ad esempio, se richiedi ComputeClass Scale-Out
per un pod:
- Autopilot aggiunge un taint specifico per
Scale-Out
per questi nodi. - Autopilot aggiunge una tolleranza per questa contaminazione ai pod
Scale-Out
.
I pod che non richiedono Scale-Out
non otterranno la tolleranza. Di conseguenza,
GKE non pianificherà questi pod sui nodi Scale-Out
.
Se non richiedi esplicitamente una ComputeClass nella specifica del carico di lavoro, Autopilot pianifica i pod sui nodi che utilizzano la piattaforma di calcolo ottimizzata per i container predefinita. La maggior parte dei carichi di lavoro generici può essere eseguita senza problemi su questa piattaforma.
Come richiedere un'architettura della CPU
In alcuni casi, i tuoi workload potrebbero essere creati per un'architettura specifica, ad esempio Arm. Scale-Out ComputeClass supporta più architetture CPU. Puoi richiedere un'architettura specifica insieme alla richiesta ComputeClass specificando un'etichetta nel selettore di nodi o nella regola di affinità dei nodi, come nel seguente esempio:
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: COMPUTE_CLASS
kubernetes.io/arch: ARCHITECTURE
containers:
- name: nginx-arm
image: nginx
resources:
requests:
cpu: 2000m
memory: 2Gi
Sostituisci ARCHITECTURE
con l'architettura della CPU che preferisci, ad esempio arm64
o amd64
. Puoi selezionare un massimo di un'architettura
nel tuo workload. La ComputeClass selezionata deve supportare l'architettura specificata.
Se non richiedi esplicitamente un'architettura, Autopilot utilizza l'architettura predefinita di ComputeClass.
Architettura Arm su Autopilot
Autopilot supporta le richieste di nodi che utilizzano l'architettura della CPU Arm. I nodi Arm sono più convenienti rispetto a nodi x86 simili e offrono miglioramenti delle prestazioni. Per istruzioni su come richiedere nodi Arm, consulta Eseguire il deployment di workload Autopilot sull'architettura Arm.
Assicurati di utilizzare le immagini corrette nei deployment. Se i tuoi pod utilizzano immagini Arm e non richiedi nodi Arm, Autopilot pianifica i pod sui nodi x86 e i pod si arrestano in modo anomalo. Allo stesso modo, se utilizzi accidentalmente immagini x86, ma richiedi nodi Arm per i pod, questi ultimi si arresteranno in modo anomalo.
Richieste di risorse predefinite, minime e massime
Quando scegli una ComputeClass per i tuoi workload Autopilot, assicurati di specificare richieste di risorse che soddisfino le richieste minime e massime per quella ComputeClass. Per informazioni sulle richieste predefinite, nonché sulle richieste minime e massime per ogni ComputeClass, consulta Richieste e limiti delle risorse in GKE Autopilot.
Passaggi successivi
- Scopri come selezionare ComputeClass specifiche nei tuoi carichi di lavoro Autopilot.
- Scopri di più sulle richieste di risorse predefinite, minime e massime per ogni piattaforma.