Puoi utilizzare le ComputeClasses Balanced e Scale-Out nei cluster Autopilot di Google Kubernetes Engine (GKE) per eseguire workload che richiedono capacità di calcolo aggiuntiva o configurazioni CPU specializzate. Questa pagina è destinata agli amministratori dei cluster che desiderano opzioni di calcolo più flessibili rispetto alla configurazione predefinita dei cluster Autopilot.
Panoramica delle ComputeClass Balanced e Scale-Out
Per impostazione predefinita, i pod nei cluster GKE Autopilot vengono eseguiti su una piattaforma di calcolo ottimizzata per container. Questa piattaforma è ideale per workload per uso generico come server web e job batch di intensità media. La piattaforma di calcolo 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 workload con requisiti hardware unici (ad esempio l'esecuzione di attività di machine learning o AI, l'esecuzione di database in tempo reale con traffico elevato o la necessità di piattaforme e architetture CPU specifiche), puoi utilizzare le ComputeClasses per eseguire il provisioning dell'hardware.
Nei cluster Autopilot, GKE fornisce le seguenti ComputeClass curate che ti consentono di eseguire pod che richiedono una maggiore flessibilità rispetto alla piattaforma di calcolo ottimizzata per container predefinita:
Balanced: fornisce una capacità massima di CPU e memoria superiore a quella della piattaforma di calcolo ottimizzata per container.Scale-Out: disabilita il multi-threading simultaneo (SMT) ed è ottimizzata per lo scale out.
Queste ComputeClass sono disponibili solo nei cluster Autopilot. Analogamente alla piattaforma di calcolo ottimizzata per container predefinita, Autopilot gestisce il dimensionamento dei nodi e l'allocazione delle risorse in base ai pod in esecuzione.
ComputeClass personalizzate per una maggiore flessibilità
Se le ComputeClass Balanced o Scale-Out nei cluster Autopilot
non soddisfano i requisiti del 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 maggiori
informazioni, consulta
Informazioni sui workload 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, consulta Prezzi di GKE.
Dettagli tecnici di Balanced e Scale-Out
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 pod, Autopilot inserisce i pod nella piattaforma di calcolo ottimizzata per 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 container. Le macchine EK sono tipi di macchine E2 esclusivi di Autopilot.
La tabella seguente fornisce una panoramica tecnica delle ComputeClass Balanced e Scale-Out.
| ComputeClass Balanced e Scale-Out | ||
|---|---|---|
Balanced |
Fornisce una capacità di CPU e memoria superiore ai massimi della piattaforma di calcolo ottimizzata per 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 computing a thread singolo per core e 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 di esempio 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 pod.
- Aggiunge automaticamente etichette e taint dei nodi ai nuovi nodi per impedire la pianificazione di altri pod su questi nodi. I taint sono univoci per ogni ComputeClass. Se selezioni anche un'architettura CPU, GKE aggiunge un taint separato univoco per quell'architettura.
- Aggiunge automaticamente le tolleranze corrispondenti ai taint applicati ai pod di cui hai eseguito il deployment, consentendo a GKE di inserire questi pod nei nuovi nodi.
Ad esempio, se richiedi la ComputeClass Scale-Out per un pod:
- Autopilot aggiunge un taint specifico per
Scale-Outper questi nodi. - Autopilot aggiunge una tolleranza per questo taint ai pod
Scale-Out.
I pod che non richiedono Scale-Out non riceveranno la tolleranza. Di conseguenza, GKE non pianificherà questi pod sui nodi Scale-Out.
Se non richiedi esplicitamente una ComputeClass nella specifica del workload, Autopilot pianifica i pod sui nodi che utilizzano la piattaforma di calcolo ottimizzata per container predefinita. La maggior parte dei workload per uso generico può essere eseguita senza problemi su questa piattaforma.
Come richiedere un'architettura della CPU
In alcuni casi, i workload potrebbero essere creati per un'architettura specifica, ad esempio Arm. La ComputeClass Scale-Out supporta più architetture CPU. Puoi richiedere un'architettura specifica insieme alla richiesta di ComputeClass specificando un'etichetta nella regola di affinità dei nodi o del selettore di nodi, come nell'esempio seguente:
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 vuoi, ad esempio arm64 o amd64. Puoi selezionare al massimo un'architettura nel workload. La ComputeClass selezionata deve supportare l'architettura specificata.
Se non richiedi esplicitamente un'architettura, Autopilot utilizza l'architettura predefinita della ComputeClass.
Architettura Arm su Autopilot
Autopilot supporta le richieste di nodi che utilizzano l'architettura CPU Arm. I nodi Arm sono più convenienti rispetto ai nodi x86 simili e offrono miglioramenti delle prestazioni. Per istruzioni su come richiedere i nodi Arm, consulta Eseguire il deployment dei workload Autopilot sull'architettura Arm.
Assicurati di utilizzare le immagini corrette nei deployment. Se i 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, i pod si arrestano in modo anomalo.
Richieste di risorse predefinite, minime e massime
Quando scegli una ComputeClass per i workload Autopilot, assicurati di specificare le richieste di risorse che soddisfano le richieste minime e massime per quella ComputeClass. Per informazioni sulle richieste predefinite, nonché su le richieste minime e massime per ogni ComputeClass, consulta Richieste e limiti delle risorse in GKE Autopilot.
Passaggi successivi
- Scopri come selezionare ComputeClass specifiche nei workload Autopilot.
- Scopri le richieste di risorse predefinite, minime e massime per ogni piattaforma.