Panoramica di GKE Autopilot


Autopilot è una modalità operativa gestita in Google Kubernetes Engine (GKE). Questa pagina descrive i vantaggi della modalità Autopilot e fornisce informazioni sulla pianificazione dei cluster, sul deployment dei workload e sulla configurazione di rete e sicurezza. Amministratori, architetti e operatori possono utilizzare queste informazioni per prendere decisioni informate quando valutano in che modo la modalità GKE Autopilot si allinea ai requisiti operativi dei loro carichi di lavoro containerizzati.

Per saperne di più sulle differenze tra le modalità operative in GKE, consulta Confrontare GKE Autopilot e Standard.

Che cos'è Autopilot?

GKE Autopilot è una modalità operativa in GKE in cui Google gestisce la configurazione dell'infrastruttura, inclusi nodi, scalabilità, sicurezza e altre impostazioni preconfigurate. La modalità Autopilot è ottimizzata per eseguire la maggior parte dei carichi di lavoro di produzione e per eseguire il provisioning delle risorse di calcolo in base ai manifest Kubernetes.

Puoi eseguire un intero cluster in modalità Autopilot, in modo che il cluster e tutti i relativi workload seguano le best practice e i suggerimenti di GKE per scalabilità, sicurezza, upgrade e configurazione dei nodi. Puoi anche eseguire carichi di lavoro specifici in modalità Autopilot nei cluster GKE Standard. Questa opzione ti consente di utilizzare Autopilot in ambienti in cui è ancora necessario il controllo manuale dell'infrastruttura. Per maggiori informazioni, consulta Informazioni sui workload in modalità Autopilot in GKE Standard.

Vantaggi

  • Concentrati sulle tue app: Google gestisce l'infrastruttura, così puoi concentrarti sulla creazione e sul deployment delle tue applicazioni.
  • Sicurezza: i cluster Autopilot hanno una configurazione predefinita con molte impostazioni di sicurezza abilitate per impostazione predefinita. GKE applica automaticamente le patch di sicurezza ai tuoi nodi quando sono disponibili, rispettando le pianificazioni di manutenzione che hai configurato.
  • Prezzi: il modello di prezzi di Autopilot semplifica le previsioni e l'attribuzione della fatturazione.
  • Gestione dei nodi: Google gestisce i nodi worker, quindi non devi creare nuovi nodi per ospitare i tuoi carichi di lavoro o configurare aggiornamenti e riparazioni automatici.
  • Scalabilità: quando i tuoi workload subiscono un carico elevato e aggiungi altri pod per gestire il traffico, ad esempio con la scalabilità automatica orizzontale dei pod di Kubernetes, GKE esegue automaticamente il provisioning di nuovi nodi per questi pod ed espande automaticamente le risorse nei nodi esistenti in base alle esigenze.
  • Pianificazione: Autopilot gestisce il bin packing dei pod per te, quindi non devi preoccuparti di quanti pod sono in esecuzione su ogni nodo. Puoi controllare ulteriormente il posizionamento dei pod utilizzando meccanismi Kubernetes come l'affinità e la topologia di distribuzione dei pod.
  • Gestione delle risorse: se esegui il deployment di workload senza impostare valori di risorse come CPU e memoria, Autopilot imposta automaticamente valori predefiniti preconfigurati e modifica le richieste di risorse a livello di workload.
  • Networking: Autopilot attiva per impostazione predefinita alcune funzionalità di sicurezza di rete, ad esempio il passaggio di tutto il traffico di rete dei pod attraverso le regole firewall di Virtual Private Cloud, anche se il traffico è diretto ad altri pod nel cluster.
  • Gestione delle release: tutti i cluster Autopilot sono registrati in un canale di rilascio GKE, in modo che il piano di controllo e i nodi vengano eseguiti sulle ultime versioni qualificate in quel canale.
  • Flessibilità gestita: se i tuoi carichi di lavoro hanno requisiti specifici di hardware o risorse, come le GPU, puoi definirli in ComputeClasses. Quando richiedi una ComputeClass nel tuo workload, GKE utilizza i tuoi requisiti per configurare i nodi per i tuoi pod. Non è necessario configurare manualmente l'hardware per i nodi o per i singoli workload.
  • Complessità operativa ridotta: Autopilot riduce l'overhead di amministrazione della piattaforma eliminando la necessità di monitorare continuamente nodi, scalabilità e operazioni di pianificazione.

Autopilot include uno SLA che copre sia il control plane sia la capacità di calcolo utilizzata dai pod.

Informazioni sulla piattaforma di computing ottimizzata per i container Autopilot

In GKE versione 1.32.3-gke.1927002 e successive, Autopilot include una piattaforma di calcolo ottimizzata per i container specializzata per i tuoi carichi di lavoro. Questa piattaforma è adatta alla maggior parte dei carichi di lavoro generici che non richiedono hardware specifico, come server web e job batch di media intensità.

La piattaforma di calcolo ottimizzata per i container utilizza nodi GKE Autopilot che possono essere ridimensionati dinamicamente durante l'esecuzione, progettati per scalare da frazioni di CPU con interruzioni minime. Questo ridimensionamento dinamico riduce notevolmente il tempo necessario per eseguire il provisioning di una nuova capacità man mano che i tuoi workload vengono scalati. Per migliorare la velocità di scalabilità e ridimensionamento, GKE gestisce anche un pool di capacità di calcolo di cui è stato eseguito il provisioning preliminare che può essere allocata automaticamente per i carichi di lavoro in risposta all'aumento delle richieste di risorse.

La piattaforma di calcolo ottimizzata per i container offre i seguenti vantaggi:

  • La capacità di calcolo corrisponde ai workload: Autopilot regola dinamicamente la capacità di calcolo per la piattaforma di calcolo ottimizzata per i container in base a fattori quali il numero di pod e il consumo di risorse. Di conseguenza, la capacità di calcolo nel cluster corrisponde alle esigenze dei tuoi carichi di lavoro.
  • Tempi di scalabilità rapidi: durante gli eventi di scalabilità verticale, GKE può ridimensionare dinamicamente i nodi esistenti per ospitare più pod o un maggiore consumo di risorse. Questo provisioning dinamico della capacità spesso significa che i nuovi pod non devono attendere l'avvio di nuovi nodi.

Puoi utilizzare la piattaforma di computing ottimizzata per i container Autopilot nei seguenti modi:

  • Cluster Autopilot: i pod che non selezionano hardware specifico utilizzano questa piattaforma di calcolo per impostazione predefinita.
  • Cluster Standard: puoi posizionare pod specifici sulla piattaforma di calcolo ottimizzata per i container selezionando una delle ComputeClass Autopilot integrate.

Prezzi

I prezzi di Autopilot utilizzano modelli diversi a seconda del tipo di hardware utilizzato dai pod, come segue:

  • Pod Autopilot per uso generico: i seguenti tipi di pod utilizzano un modello di fatturazione basato sui pod e sono classificati come pod per uso generico:

    • Pod eseguiti sulla piattaforma di computing ottimizzata per i container nei cluster Autopilot o Standard.
    • Pod che selezionano le ComputeClass integrate Balanced o Scale-Out nei cluster Autopilot.

    Per ulteriori informazioni, consulta la sezione "Carichi di lavoro Autopilot di uso generale" nei prezzi di Google Kubernetes Engine.

  • Workload Autopilot che selezionano hardware specifici: i pod che selezionano hardware specifici, come le serie di macchine Compute Engine o gli acceleratori hardware, utilizzano un modello di fatturazione basato sui nodi. In questo modello, paghi l'hardware sottostante e un premio per la gestione dei nodi.

    Per ulteriori informazioni, consulta la sezione "Workload Autopilot che selezionano hardware specifico" nei prezzi di Google Kubernetes Engine.

Cluster e workload Autopilot

GKE ti consente di utilizzare la modalità Autopilot per interi cluster o per carichi di lavoro specifici nei cluster Standard. I cluster Autopilot sono il modo consigliato per utilizzare GKE, perché l'intero cluster utilizza le best practice di Google per impostazione predefinita.

Tuttavia, alcune organizzazioni hanno requisiti per il controllo manuale o per la flessibilità che richiedono l'utilizzo di un cluster GKE Standard. In questi casi, puoi comunque utilizzare Autopilot per carichi di lavoro specifici nei tuoi cluster Standard, il che ti consente di usufruire di molte funzionalità di Autopilot a livello di carico di lavoro.

Le sezioni seguenti mostrano come pianificare e creare cluster Autopilot. Se hai un cluster Standard e vuoi eseguire alcuni dei tuoi carichi di lavoro in modalità Autopilot, consulta Informazioni sui carichi di lavoro in modalità Autopilot in GKE Standard.

Pianificare i cluster Autopilot

Prima di creare un cluster, pianifica e progetta l'architettura Google Cloud . In Autopilot, richiedi l'hardware nelle specifiche del carico di lavoro. GKE esegue il provisioning e gestisce l'infrastruttura corrispondente per eseguire questi carichi di lavoro. Ad esempio, se esegui carichi di lavoro di machine learning, richiedi acceleratori hardware. Se sviluppi app per Android, richiedi CPU Arm.

Pianifica e richiedi la quota per il tuo progetto o la tua organizzazione Google Cloud in base alle dimensioni dei tuoi carichi di lavoro. GKE può eseguire il provisioning dell'infrastruttura per i tuoi carichi di lavoro solo se il tuo progetto dispone di una quota sufficiente per questo hardware.

Durante la pianificazione, prendi in considerazione i seguenti fattori:

  • Dimensioni e scalabilità stimate del cluster
  • Tipo di workload
  • Layout e utilizzo del cluster
  • Layout e configurazione Networking
  • Configurazione di sicurezza
  • Gestione e manutenzione dei cluster
  • Deployment e gestione dei carichi di lavoro
  • Logging e monitoraggio

Le sezioni seguenti forniscono informazioni e risorse utili per questi aspetti.

Networking

Quando crei un cluster Autopilot con networking pubblico, i workload nel cluster possono comunicare tra loro e con internet. Questa è la modalità di networking predefinita. Google Cloud e Kubernetes forniscono varie funzionalità e capacità di networking aggiuntive che puoi utilizzare in base ai tuoi requisiti, ad esempio cluster con networking privato.

Il networking in Kubernetes e nel cloud è complesso. Prima di iniziare a modificare le impostazioni predefinite cheGoogle Cloud imposta per te, assicurati di conoscere i concetti di base del networking. La seguente tabella fornisce risorse per scoprire di più sul networking in GKE in base al tuo caso d'uso:

Caso d'uso Risorse
Capire come funziona il networking in Kubernetes e GKE

Dopo aver appreso il modello di networking, considera i requisiti di networking e sicurezza di rete della tua organizzazione. Scegli GKE e Google Cloud le funzionalità di rete che soddisfano questi criteri.

Pianifica la configurazione di networking di GKE

Ti consigliamo di comprendere le quote di networking per GKE, ad esempio i limiti per gli endpoint per servizio e per le richieste API. Le seguenti risorse ti aiuteranno a pianificare aspetti specifici della configurazione di rete:

Esporre i carichi di lavoro
  • Per esporre le tue app a internet, utilizza i servizi, che ti consentono di esporre un'app in esecuzione in un gruppo di pod come un singolo servizio di rete.
  • Per configurare i workload in modo che comunichino in modo sicuro con le API Google Cloud , utilizza Workload Identity Federation for GKE.
Esegui servizi connessi ad alta disponibilità in più cluster Utilizza Servizi multi-cluster (MCS).
Bilanciare il carico del traffico in entrata
Configurare la sicurezza di rete del cluster
Osserva il traffico di rete Kubernetes

Per impostazione predefinita, Autopilot utilizza GKE Dataplane V2 per le metriche e l'osservabilità .

  • Per importare le metriche GKE Dataplane V2, configura Google Cloud Managed Service per Prometheus. Per impostazione predefinita, le metriche di GKE Dataplane V2 vengono esposte in GKE Autopilot.
  • Per accedere a visualizzazioni, verdetti della policy di rete e dump di flusso, configura strumenti di risoluzione dei problemi aggiuntivi utilizzando l'osservabilità di GKE Dataplane V2.

Scalabilità

Per gestire una piattaforma in modo efficace su larga scala sono necessarie pianificazione e attenta valutazione. Devi considerare la scalabilità della tua progettazione, ovvero la capacità dei tuoi cluster di crescere rimanendo entro gli obiettivi del livello di servizio (SLO). Per indicazioni dettagliate per gli amministratori della piattaforma e gli sviluppatori, consulta le Linee guida per la creazione di cluster scalabili.

Devi anche considerare le quote e i limiti di GKE, soprattutto se prevedi di eseguire cluster di grandi dimensioni con potenzialmente migliaia di pod.

In Autopilot, GKE scala automaticamente i nodi in base al numero di pod nel cluster. Se un cluster non ha workload in esecuzione, Autopilot può scalare automaticamente il cluster fino a zero nodi. Dopo lo scale down del cluster, non rimangono nodi nel cluster e i pod di sistema si trovano di conseguenza in uno stato non pianificabile. Questo è un comportamento previsto. Nella maggior parte dei cluster Autopilot appena creati, potresti notare che la pianificazione dei primi carichi di lavoro di cui esegui il deployment richiede più tempo. Questo perché il nuovo cluster Autopilot inizia con zero nodi utilizzabili al momento della creazione e attende che tu esegua il deployment di un workload per eseguire il provisioning di nodi aggiuntivi.

Best practice:

Per scalare automaticamente il numero di pod nel cluster, utilizza un meccanismo come la scalabilità automatica pod orizzontale di Kubernetes, che può scalare i pod in base alle metriche integrate di CPU e memoria o in base alle metriche personalizzate di Cloud Monitoring. Per scoprire come configurare lo scaling in base a varie metriche, consulta Ottimizzare la scalabilità automatica dei pod in base alle metriche.

Sicurezza

I cluster Autopilot abilitano e applicano per impostazione predefinita le best practice e le impostazioni di sicurezza, tra cui molti dei suggerimenti riportati in Rafforzare la sicurezza del cluster e nella Panoramica della sicurezza di GKE.

Se vuoi saperne di più sulle misure di hardening di Autopilot e su come implementare i tuoi requisiti di sicurezza specifici, consulta Misure di sicurezza in Autopilot.

Crea un cluster

Dopo aver pianificato l'ambiente e compreso i requisiti, crea un cluster Autopilot. I nuovi cluster Autopilot sono cluster regionali con un indirizzo IP accessibile pubblicamente. A ogni cluster vengono applicate misure di hardening di base, nonché la scalabilità automatica e altre funzionalità. Per un elenco completo delle funzionalità preconfigurate, consulta Confronta GKE Autopilot e Standard.

Se vuoi creare il cluster senza accesso a indirizzi IP esterni, configura l'isolamento di rete.

Esegui il deployment dei carichi di lavoro in modalità Autopilot

Puoi eseguire carichi di lavoro Kubernetes compatibili in modalità Autopilot in modo che GKE gestisca lo scaling, la pianificazione efficiente e l'infrastruttura di base. Puoi utilizzare la piattaforma di calcolo ottimizzata per i container per i tuoi workload generici oppure puoi selezionare hardware specifici per i tuoi workload utilizzando una ComputeClass.

Puoi eseguire questi carichi di lavoro Autopilot in uno dei seguenti modi:

Per una guida interattiva nella console Google Cloud per il deployment e l'esposizione di un'app in un cluster Autopilot, fai clic su Procedura guidata:

Procedura guidata

La seguente tabella mostra alcuni requisiti comuni e fornisce consigli su cosa dovresti fare:

Caso d'uso Risorse
Controllare le proprietà dei singoli nodi durante lo scale up di un cluster Crea una ComputeClass personalizzata e richiedila nel manifest del tuo workload. Per ulteriori informazioni, vedi Informazioni su ComputeClass personalizzate.
Esegui carichi di lavoro Autopilot in un cluster standard Utilizza una classe di computing Autopilot nel cluster Standard. Per maggiori informazioni, consulta Informazioni sui workload in modalità Autopilot in GKE Standard.
Esegui workload ARM Richiedi una serie di macchine con CPU Arm in un ComputeClass o nel manifest del workload. Per ulteriori informazioni, vedi Informazioni su ComputeClass personalizzate.
Esegui workload AI/ML accelerati Richiedi GPU in una ComputeClass o nel manifest del workload. Per ulteriori informazioni sulla richiesta di GPU nel manifest del workload, consulta Esegui il deployment dei carichi di lavoro GPU in Autopilot.
Esegui carichi di lavoro a tolleranza di errore, come i job batch, a costi inferiori.

Puoi utilizzare qualsiasi ComputeClass o configurazione hardware con i pod spot.

Esegui workload che richiedono interruzioni minime, come server di gioco o code di lavoro Solo nei cluster Autopilot, specifica l'annotazione cluster-autoscaler.kubernetes.io/safe-to-evict=false nella specifica del pod. I pod sono protetti dall'espulsione causata da upgrade automatici dei nodi o da eventi di riduzione della scalabilità per un massimo di sette giorni. Per saperne di più, consulta Estendi la durata di esecuzione dei pod Autopilot.
Consenti ai workload di superare le richieste se sono disponibili risorse inutilizzate nella somma delle richieste di risorse dei pod sul nodo. Imposta la risorsa limits su un valore superiore a requests o non impostare limiti per le risorse. Per maggiori informazioni, consulta Configurare il bursting dei pod in GKE.

Autopilot ti consente di richiedere risorse di CPU, memoria e archiviazione temporanea per i tuoi carichi di lavoro. Gli intervalli consentiti dipendono dal fatto che tu voglia eseguire i tuoi pod sulla piattaforma di calcolo Autopilot ottimizzata per i container o su hardware specifico. Per informazioni sulle richieste di risorse del container predefinite e sugli intervalli di risorse consentiti, consulta Richieste di risorse in Autopilot.

Separazione dei workload

I cluster Autopilot supportano l'utilizzo di selettori di nodi e affinità dei nodi per configurare la separazione dei carichi di lavoro. La separazione dei carichi di lavoro è utile quando devi indicare a GKE di posizionare i carichi di lavoro su nodi che soddisfano criteri specifici, come le etichette dei nodi personalizzate. Ad esempio, puoi indicare a GKE di pianificare i pod del server di gioco sui nodi con l'etichetta game-server ed evitare di pianificare altri pod su questi nodi.

Per saperne di più, consulta la sezione Configurare la separazione dei workload in GKE.

Pianificare i pod in zone specifiche utilizzando la topologia zonale

Se devi posizionare i pod in una zona Google Cloud specifica, ad esempio per accedere alle informazioni su un disco permanente Compute Engine a livello di zona, consulta Posizionare i pod GKE in zone specifiche.

Affinità e anti-affinità tra pod

Utilizza l'affinità e l'anti-affinità dei pod per collocare i pod su un singolo nodo o per fare in modo che alcuni pod evitino altri pod. L'affinità e l'anti-affinità dei pod indicano a Kubernetes di prendere una decisione di pianificazione in base alle etichette dei pod in esecuzione sui nodi in un dominio di topologia specifico, ad esempio una regione o una zona specifica. Ad esempio, puoi chiedere a GKE di evitare di pianificare i pod frontend insieme ad altri pod frontend sugli stessi nodi per migliorare la disponibilità in caso di interruzione.

Per istruzioni e maggiori dettagli, consulta Affinità e anti-affinità dei pod.

In GKE, puoi utilizzare l'affinità e l'anti-affinità dei pod con le seguenti etichette in topologyKey:

  • topology.kubernetes.io/zone
  • kubernetes.io/hostname

Vincoli di distribuzione della topologia dei pod

Per migliorare la disponibilità dei workload man mano che Kubernetes aumenta e diminuisce il numero di pod, puoi impostare i vincoli di distribuzione della topologia dei pod. Questo controlla la modalità di distribuzione dei pod tra i nodi all'interno di un dominio di topologia, ad esempio un'area geografica. Ad esempio, potresti indicare a Kubernetes di inserire un numero specifico di pod di sessione del server di gioco in ciascuna delle tre zone nella regione us-central1. Google Cloud

Per esempi, maggiori dettagli e istruzioni, consulta Vincoli di distribuzione della topologia dei pod.

Gestire e monitorare i cluster Autopilot

In Autopilot, GKE gestisce automaticamente gli upgrade e la manutenzione del cluster sia per il control plane sia per i nodi worker. I cluster Autopilot dispongono anche di funzionalità integrate per monitorare i cluster e i carichi di lavoro.

Upgrade delle versioni di GKE

Tutti i cluster Autopilot sono registrati in un canale di rilascio GKE. Nei canali di rilascio, GKE gestisce la versione di Kubernetes del cluster, bilanciando la disponibilità delle funzionalità e la stabilità della versione a seconda del canale. Per impostazione predefinita, i cluster Autopilot sono registrati nel canale di rilascio Regular, ma puoi selezionare un canale diverso che soddisfi le tue esigenze di stabilità e funzionalità. Per saperne di più sui canali di rilascio, vedi Informazioni sui canali di rilascio.

GKE avvia automaticamente gli upgrade, monitora l'avanzamento e mette in pausa l'operazione in caso di problemi. Puoi controllare manualmente la procedura di upgrade nei seguenti modi:

  • Per controllare quando GKE può eseguire gli upgrade automatici, crea periodi di manutenzione. Ad esempio, puoi impostare il periodo di manutenzione per la notte prima del ripristino settimanale del gioco multigiocatore, in modo che i giocatori possano accedere al ripristino senza interruzioni.
  • Per controllare quando GKE non può avviare gli upgrade automatici durante un intervallo di tempo specifico, utilizza le esclusioni dalla manutenzione. Ad esempio, puoi impostare un'esclusione della manutenzione per la durata dell'evento di vendita del Black Friday e del Cyber Monday, in modo che i tuoi clienti possano fare acquisti senza problemi.
  • Per ottenere una nuova versione prima dell'inizio degli upgrade automatici, esegui manualmente l'upgrade del control plane. GKE riconcilia la versione del nodo con la versione del control plane nel tempo.
  • Per ottenere una versione patch disponibile solo in un canale di rilascio più recente, consulta Eseguire versioni patch da un canale più recente. Ad esempio, potresti aver bisogno di una versione specifica della patch per mitigare una recente divulgazione di vulnerabilità.

Monitora i cluster Autopilot

I cluster Autopilot hanno già abilitato Cloud Logging, Cloud Monitoring e Google Cloud Managed Service per Prometheus.

I cluster Autopilot raccolgono automaticamente i seguenti tipi di log e metriche, rispettando le best practice di Google per la raccolta di dati di telemetria:

Log per Cloud Logging

  • Log di sistema
  • Log dei workload
  • Audit log delle attività di amministrazione
  • Audit log degli accessi ai dati

Metriche per Cloud Monitoring

  • Metriche di sistema
  • Metriche del workload (da Google Cloud Managed Service per Prometheus)

Non è necessaria alcuna configurazione aggiuntiva per attivare la registrazione e il monitoraggio. La seguente tabella mostra come interagire con la telemetria raccolta in base ai tuoi requisiti:

Caso d'uso Risorse
Comprendere e accedere ai log di GKE
  • Per scoprire di più sui tipi di log che raccogliamo automaticamente, consulta Quali log vengono raccolti.
  • Per accedere ai log e utilizzare l'interfaccia utente di Cloud Logging nella console Google Cloud , consulta Visualizzare i log di GKE.
  • Per query di esempio che puoi utilizzare per filtrare i log di sistema e dei carichi di lavoro di Kubernetes, consulta Query correlate a Kubernetes.
  • Per query di esempio che puoi utilizzare per filtrare i log di controllo delle attività di amministrazione e dell'accesso ai dati, consulta le informazioni sull'audit logging di GKE.
  • Per configurare i log per gli ambienti multi-tenant, ad esempio quando i team hanno spazi dei nomi specifici in un singolo cluster GKE ma ogni team ha il proprio progetto Google Cloud , consulta Logging multi-tenant su GKE.
Osserva le prestazioni dei tuoi cluster GKE

Un monitoraggio efficace del rendimento del cluster può aiutarti a ottimizzare i costi operativi dei cluster e dei carichi di lavoro.

Monitorare la postura di sicurezza dei cluster Utilizza la dashboard sulla postura di sicurezza per controllare i workload in esecuzione in base alle best practice di GKE, analizzare le vulnerabilità nei sistemi operativi dei container e nei pacchetti di linguaggio e ricevere suggerimenti strategici per la mitigazione. Per scoprire di più, vedi Informazioni sulla dashboard della postura di sicurezza.

Risoluzione dei problemi

Per la procedura di risoluzione dei problemi, consulta Risoluzione dei problemi dei cluster Autopilot.

Passaggi successivi