Panoramica di Autopilot


Questa pagina descrive la modalità operativa Autopilot in Google Kubernetes Engine (GKE) e fornisce le risorse che puoi utilizzare per pianificare, configurare e gestire i tuoi cluster.

Che cos'è Autopilot?

GKE Autopilot è una modalità operativa di GKE in cui Google gestisce la configurazione del tuo cluster, inclusi nodi, scalabilità, sicurezza e altre impostazioni preconfigurate. I cluster Autopilot sono ottimizzati per l'esecuzione della maggior parte dei carichi di lavoro di produzione e il provisioning delle risorse di computing in base ai manifest Kubernetes. La configurazione semplificata segue le best practice e i suggerimenti di GKE per la configurazione, la scalabilità e la sicurezza di cluster e carichi di lavoro. Per un elenco delle impostazioni integrate, consulta la tabella di confronto tra Autopilot e Standard.

Prezzi

Nella maggior parte dei casi, paghi solo per la CPU, la memoria e lo spazio di archiviazione richiesti dai carichi di lavoro durante l'esecuzione su GKE Autopilot. Non ti viene addebitato alcun costo per la capacità inutilizzata sui tuoi nodi, poiché GKE gestisce i nodi.

Non vengono addebitati costi per pod di sistema, costi del sistema operativo o carichi di lavoro non pianificati. Per informazioni più dettagliate sui prezzi, consulta la pagina Prezzi di Autopilot.

Vantaggi

  • Concentrati sulle app: Google gestisce l'infrastruttura in modo che tu possa concentrarti sulla creazione e sul deployment delle tue applicazioni.
  • Sicurezza: i cluster hanno una configurazione protetta predefinita, con molte impostazioni di sicurezza abilitate per impostazione predefinita. GKE applica automaticamente le patch di sicurezza ai nodi, se disponibili, rispettando le pianificazioni di manutenzione configurate.
  • Prezzi: il modello di prezzi di Autopilot semplifica le previsioni e l'attribuzione di fatturazione.
  • Gestione dei nodi: Google gestisce i nodi worker, quindi non è necessario crearne di nuovi per supportare i carichi di lavoro o configurare upgrade e riparazioni automatici.
  • Scalabilità: quando i carichi di lavoro sono soggetti a 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 i pod ed espande automaticamente le risorse nei nodi esistenti in base alle esigenze.
  • Pianificazione: Autopilot gestisce il bin packing dei pod per conto tuo, così non devi preoccuparti di quanti pod sono in esecuzione su ciascun nodo. Puoi controllare ulteriormente il posizionamento dei pod utilizzando meccanismi Kubernetes come affinità e topologia di diffusione dei pod.
  • Gestione delle risorse: se esegui il deployment di carichi di lavoro senza impostare valori delle risorse come CPU e memoria, Autopilot imposta automaticamente valori predefiniti preconfigurati e modifica le richieste di risorse a livello di carico di lavoro.
  • Networking: Autopilot abilita alcune funzionalità di sicurezza del networking per impostazione predefinita, ad esempio garantire che tutto il traffico di rete dei pod passi attraverso le regole firewall di Virtual Private Cloud, anche se il traffico passa ad altri pod nel cluster.
  • Gestione delle release: tutti i cluster Autopilot sono registrati in un canale di rilascio GKE, che garantisce che il piano di controllo e i nodi vengano eseguiti sulle versioni qualificate più recenti in quel canale.
  • Flessibilità gestita: se i tuoi carichi di lavoro hanno requisiti specifici di hardware o risorse, ad esempio un numero elevato di CPU o memoria, Autopilot offre classi di calcolo preconfigurate, create per quei carichi di lavoro. Richiedi la classe di computing nel tuo deployment, invece di dover creare manualmente nuovi nodi supportati da hardware e tipi di macchine personalizzati. Puoi anche selezionare le GPU per accelerare i carichi di lavoro come le applicazioni batch o AI/ML.
  • Complessità operativa ridotta: Autopilot riduce l'overhead di amministrazione della piattaforma eliminando la necessità di monitorare continuamente nodi, scalabilità e pianificazione delle operazioni.

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

Pianifica i cluster Autopilot

Prima di creare un cluster, pianifica e progetta la tua architettura Google Cloud. In Autopilot, richiedi l'hardware nelle specifiche dei carichi di lavoro. GKE esegue il provisioning e la gestione dell'infrastruttura corrispondente per eseguire i 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 quota per l'organizzazione o il progetto Google Cloud in base alla scala dei tuoi carichi di lavoro. GKE può eseguire il provisioning dell'infrastruttura per i carichi di lavoro solo se il progetto dispone di una quota sufficiente per l'hardware.

Durante la pianificazione, considera i seguenti fattori:

  • Dimensione e scalabilità stimate del cluster
  • Tipo di carico di lavoro
  • 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 seguenti sezioni forniscono informazioni e risorse utili al riguardo.

Networking

Quando crei un cluster Autopilot con networking pubblico, i carichi di lavoro 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 sfruttare in base al tuo caso d'uso, ad esempio i cluster con networking privato.

Il networking in Kubernetes e nel cloud è complesso. Assicurati di comprendere i concetti di base del networking prima di iniziare a modificare i valori predefiniti che Google Cloud imposta per te. La seguente tabella fornisce risorse per saperne di più sul networking in GKE in base al tuo caso d'uso:

Caso d'uso Risorse
Comprendere il funzionamento del networking in Kubernetes e GKE

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

Pianifica la configurazione del networking di GKE

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

Esponi i carichi di lavoro
Esegui servizi connessi a disponibilità elevata in più cluster Utilizzare i servizi multi-cluster.
Bilancia il carico del traffico in entrata
Configura la sicurezza della rete del cluster
  • Per controllare o impedire l'accesso al cluster dalla rete internet pubblica, crea cluster privati.
  • Per limitare l'accesso del piano di controllo a intervalli di indirizzi IP specifici, utilizza le reti autorizzate del piano di controllo.
  • Per controllare il traffico dei pod a livello di indirizzo IP o di porta, utilizza i criteri di rete. I cluster Autopilot utilizzano GKE Dataplane V2 per instradare i pacchetti a bassa latenza utilizzando eBPF.
Osservare il traffico di rete Kubernetes
  • Per importare le metriche di GKE Dataplane V2, configura Google Managed Service per Prometheus. Per impostazione predefinita, le metriche di GKE Dataplane V2 sono esposte in GKE Autopilot.
  • Per accedere a visualizzazioni, esiti dei criteri di rete e dump dei flussi, configura ulteriori strumenti per la risoluzione dei problemi utilizzando l'osservabilità di GKE Dataplane V2.

Scalabilità

Per gestire in modo efficace una piattaforma su larga scala, è necessario pianificare e fare attenzione. 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 sia per gli amministratori sia per gli sviluppatori della piattaforma, consulta le linee guida per la creazione di cluster scalabili.

Dovresti anche prendere in considerazione quote e limiti di GKE, soprattutto se prevedi di eseguire cluster di grandi dimensioni con potenzialmente migliaia di pod.

Scala i carichi di lavoro Autopilot

In Autopilot, GKE scala automaticamente i nodi in base al numero di pod nel cluster. Se un cluster non ha carichi di lavoro in esecuzione, Autopilot può fare automaticamente lo scale down del cluster a zero nodi. 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 viene avviato con zero nodi utilizzabili al momento della creazione e attende fino a quando non esegui il deployment di un carico di lavoro per eseguire il provisioning di nodi aggiuntivi.

Per scalare automaticamente il numero di pod nel tuo cluster, ti consigliamo di utilizzare un meccanismo come scalabilità automatica orizzontale dei pod di Kubernetes, in grado di scalare i pod in base alle metriche integrate di CPU e memoria o alle metriche personalizzate di Cloud Monitoring. Per scoprire come configurare la scalabilità in base a varie metriche, consulta Ottimizzare la scalabilità automatica dei pod in base alle metriche.

Sicurezza

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

Se vuoi scoprire di più sulle misure di protezione della modalità Autopilot e su come implementare i tuoi requisiti di sicurezza specifici, consulta Misure di sicurezza in Autopilot.

Crea un cluster

Dopo aver pianificato il tuo ambiente e aver compreso i tuoi requisiti, crea un cluster Autopilot. I nuovi cluster Autopilot sono cluster a livello di regione che hanno un indirizzo IP accessibile pubblicamente. A ogni cluster sono applicate misure di base di protezione avanzata, scalabilità automatica e altre funzionalità. Per un elenco completo delle funzionalità preconfigurate, consulta Confronto tra GKE Autopilot e Standard.

Se vuoi creare il cluster senza indirizzo IP pubblico, crea un cluster privato.

Esegui il deployment dei carichi di lavoro su Autopilot

Per eseguire il deployment di un carico di lavoro in un cluster Autopilot in esecuzione, scrivi un file manifest Kubernetes e applicalo al cluster. Per impostazione predefinita, i cluster Autopilot sono ottimizzati per eseguire la maggior parte dei carichi di lavoro di produzione.

Per una guida interattiva nella console Google Cloud al deployment e all'esposizione di un'app, fai clic su Aiuto:

Guidami

Alcuni dei tuoi carichi di lavoro potrebbero avere requisiti hardware specializzati, come carichi di lavoro ML che richiedono acceleratori hardware o test di app mobile che richiedono l'architettura ARM. Autopilot offre classi di calcolo configurate da Google Cloud per eseguire carichi di lavoro con requisiti di calcolo speciali. Quando esegui il deployment di questi carichi di lavoro, richiedi una classe di computing nel manifest. Autopilot esegue automaticamente il provisioning dei nodi supportati da macchine specializzate, gestisce la pianificazione e alloca l'hardware.

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

Caso d'uso Risorse
Esegui carichi di lavoro ARM Richiedi la classe di computing Scale-Out e l'architettura arm64 nel manifest. Per le istruzioni, consulta Eseguire il deployment dei carichi di lavoro Autopilot sull'architettura ARM.
Esegui carichi di lavoro AI/ML accelerati Richiedi le GPU nel manifest. Per le istruzioni, consulta Eseguire il deployment dei carichi di lavoro GPU in Autopilot.
Esegui carichi di lavoro che richiedono un'elevata capacità di calcolo o di memoria Richiedi la classe di computing Balanced. Per le istruzioni, consulta Scegliere le classi di computing per i pod Autopilot.
Esegui carichi di lavoro che richiedono una scalabilità orizzontale più efficiente della capacità della CPU e calcolo single-thread-per-core Richiedi la classe di computing Scale-Out. Per le istruzioni, consulta Scegliere le classi di computing per i pod Autopilot.
Esegui carichi di lavoro a tolleranza di errore come job batch a costi inferiori Specifica i pod Spot nel manifest. Per le istruzioni, consulta Eseguire carichi di lavoro a tolleranza di errore a costi inferiori nei pod spot. Con i pod spot puoi utilizzare qualsiasi classe di computing o configurazione hardware.
Eseguire carichi di lavoro che richiedono interruzioni minime, ad esempio server di gioco o code di lavoro Specifica l'annotazione cluster-autoscaler.kubernetes.io/safe-to-evict=false nella specifica del pod. I pod sono protetti dall'eliminazione causata da upgrade automatici dei nodi o da eventi di scale down per un massimo di sette giorni. Per le istruzioni, consulta Estendi il tempo di esecuzione dei pod Autopilot.
Consenti ai carichi di lavoro di eseguire il burst oltre le loro richieste se sono disponibili risorse inutilizzate nella somma delle richieste di risorse pod sul nodo. Imposta un limite per le risorse (limits) superiore a quello di requests o non impostare limiti per le risorse. Per le istruzioni, consulta Configurare il bursting dei pod in GKE.

La modalità Autopilot consente di richiedere CPU, memoria e risorse di archiviazione temporanea per i carichi di lavoro. Gli intervalli consentiti dipendono dal fatto che tu voglia eseguire i pod sulla piattaforma di computing generica predefinita oppure su una classe di computing.

Per informazioni sulle richieste di risorse del container predefinite e sugli intervalli di risorse consentiti, consulta Richieste di risorse in Autopilot.

Separazione dei carichi di lavoro

I cluster Autopilot supportano l'uso dei selettori dei nodi e dell'affinità dei nodi per configurare la separazione del carico 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 dire a GKE di pianificare i pod dei server di gioco sui nodi con l'etichetta game-server ed evitare di pianificare altri pod su quei nodi.

Per saperne di più, consulta Configurare la separazione dei carichi di lavoro in GKE.

Pianifica i pod in zone specifiche utilizzando la topologia a livello di zona

Se devi collocare i pod in una zona Google Cloud specifica, ad esempio per accedere alle informazioni su un disco permanente di 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'antiaffinità 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, come una regione o una zona specifica. Ad esempio, potresti dire a GKE di evitare di pianificare pod di frontend insieme ad altri pod di frontend sugli stessi nodi per migliorare la disponibilità in caso di interruzione.

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

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

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

Vincoli di diffusione della topologia dei pod

Per migliorare la disponibilità dei carichi di lavoro man mano che Kubernetes scala il numero di pod, puoi impostare vincoli di distribuzione della topologia dei pod. Questo controlla in che modo Kubernetes distribuisce i tuoi pod tra i nodi all'interno di un dominio di topologia, ad esempio una regione. Ad esempio, potresti indicare a Kubernetes di posizionare un numero specifico di pod di sessioni dei server di gioco in ciascuna delle tre zone di Google Cloud nella regione us-central1.

Per esempi, ulteriori dettagli e istruzioni, consulta la sezione Vincoli di diffusione della topologia dei pod.

Gestisci e monitora i tuoi cluster Autopilot

In Autopilot, GKE gestisce automaticamente gli upgrade e la manutenzione dei cluster, sia per il piano di controllo sia per i nodi worker. I cluster Autopilot hanno anche funzionalità integrate per monitorare i cluster e i carichi di lavoro.

Upgrade della versione di GKE

Tutti i cluster Autopilot sono registrati in un canale di rilascio GKE. Nei canali di rilascio, GKE gestisce la versione Kubernetes del cluster, bilanciando la disponibilità delle funzionalità e la stabilità della versione in base al canale. Per impostazione predefinita, i cluster Autopilot sono registrati nel canale di rilascio regolare, ma puoi selezionare un canale diverso che soddisfi le tue esigenze di stabilità e funzionalità. Per ulteriori informazioni sui canali di rilascio, consulta 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 il processo di upgrade nei seguenti modi:

  • Per controllare quando GKE può eseguire upgrade automatici, crea periodi di manutenzione. Ad esempio, puoi impostare il periodo di manutenzione sulla notte precedente al ripristino settimanale del gioco multiplayer, in modo che i giocatori possano accedere al ripristino senza interruzioni.
  • Per controllare quando GKE non può avviare upgrade automatici durante un intervallo di tempo specifico, utilizza le esclusioni di manutenzione. Ad esempio, puoi impostare un'esclusione dalla manutenzione per la durata dell'evento promozionale 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 l'upgrade manuale del piano di controllo. GKE riconcilia la versione del nodo con la versione del piano di controllo 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 tuoi cluster Autopilot

Nei cluster Autopilot sono già abilitati 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 telemetria:

Log per Cloud Logging

  • Log di sistema
  • Log del carico di lavoro
  • Audit log delle attività di amministrazione
  • Audit log degli accessi ai dati

Metriche per Cloud Monitoring

  • Metriche di sistema
  • Metriche del carico di lavoro (da Managed Service per Prometheus)

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

Caso d'uso Risorse
Comprendi e accedi ai log GKE
  • Per scoprire i tipi di log che raccogliamo automaticamente, vedi Quali log vengono raccolti.
  • Per accedere ai log e per utilizzare l'interfaccia utente di Cloud Logging nella console Google Cloud, consulta Visualizzazione dei log GKE.
  • Per query di esempio che puoi utilizzare per filtrare i log di sistema e dei carichi di lavoro Kubernetes, consulta Query relative a Kubernetes.
  • Per le query di esempio che puoi utilizzare per filtrare gli audit log relativi ad attività di amministrazione e accesso ai dati, consulta Informazioni sugli audit logging di GKE.
  • Per configurare i log per ambienti multi-tenant, ad esempio quando i team hanno spazi dei nomi specifici in un singolo cluster GKE, ma ogni team ha un proprio progetto Google Cloud, consulta Logging multi-tenant su GKE.
Osserva le prestazioni dei cluster GKE

Il monitoraggio efficace delle prestazioni dei cluster può aiutarti a ottimizzare i costi operativi dei cluster e dei carichi di lavoro.

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

Risoluzione dei problemi

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

Passaggi successivi