Questa pagina descrive la modalità Autopilot di Google Kubernetes Engine (GKE), una modalità gestita dei cluster GKE. Fornisce le informazioni necessarie per comprendere i vantaggi e le considerazioni della modalità Autopilot. Tratta argomenti come la pianificazione e la creazione di cluster Autopilot, il deployment e la gestione delle applicazioni, la configurazione del networking, la garanzia della sicurezza e il ridimensionamento dei carichi di lavoro.
Questa pagina è rivolta ad amministratori, architetti e operatori che prendono decisioni informate quando valutano in che modo la modalità GKE Autopilot si allinea ai requisiti operativi dei loro carichi di lavoro containerizzati. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui viene fatto riferimento nei contenuti di Google Cloud , consulta la pagina Ruoli utente e attività comuni di GKE Enterprise.
Prima di leggere questa pagina, puoi familiarizzare con Confronto tra GKE Autopilot e Standard.
Che cos'è Autopilot?
GKE Autopilot è una modalità operativa in GKE in cui Google gestisce la configurazione del cluster, inclusi nodi, scalabilità, sicurezza e altre impostazioni preconfigurate. I cluster Autopilot sono ottimizzati per eseguire la maggior parte dei carichi di lavoro di produzione e per il provisioning delle risorse di calcolo 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 dei cluster e dei workload. Per un elenco delle impostazioni integrate, consulta la tabella di confronto tra Autopilot e Standard.
Utilizza Autopilot per un'esperienza Kubernetes completamente gestita.
Prezzi
Nella maggior parte dei casi, paghi solo per la CPU, la memoria e lo spazio di archiviazione richiesti dai tuoi workload durante l'esecuzione su GKE Autopilot. Non ti viene addebitato il costo della capacità inutilizzata sui nodi perché GKE gestisce i nodi. Tieni presente che esistono eccezioni a questo modello di prezzi quando esegui pod su classi di calcolo specifiche che consentono ai pod di utilizzare la piena capacità delle risorse della macchina virtuale (VM) del nodo.
Non ti vengono addebitati costi per i pod di sistema, i costi del sistema operativo o i workload non pianificati. Per informazioni dettagliate sui prezzi, consulta Prezzi di Autopilot.
Vantaggi
- Concentrati sulle tue app: Google gestisce l'infrastruttura, così puoi concentrarti sulla creazione e sul deployment delle tue applicazioni.
- Sicurezza: i cluster hanno una configurazione predefinita protetta, con molte impostazioni di sicurezza abilitate per impostazione predefinita. GKE applica automaticamente le patch di sicurezza ai nodi quando sono disponibili, rispettando le pianificazioni di manutenzione configurate.
- 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 garantendo che tutto il traffico di rete dei pod passi 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, il che garantisce 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 CPU o memoria elevate, Autopilot offre classi di computing preconfigurate create per questi carichi di lavoro. Richiedi la classe di calcolo nel deployment invece di dover creare manualmente nuovi nodi supportati da tipi di macchine e hardware personalizzati. Puoi anche selezionare 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 operazioni di pianificazione.
Autopilot include uno SLA che copre sia il piano di controllo sia la capacità di calcolo utilizzata dai tuoi pod.
Pianifica 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 la gestione dell'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 alla scalabilità 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 queste considerazioni.
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 sfruttare in base al tuo caso d'uso, 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 |
|
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à .
|
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.
Scalare i workload Autopilot
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.
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 su Autopilot
Per eseguire il deployment di un workload in un cluster Autopilot in esecuzione, scrivi un 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 per il deployment e l'esposizione di un'app, fai clic su Procedura guidata:
Alcuni carichi di lavoro potrebbero avere requisiti hardware specializzati, ad esempio i carichi di lavoro ML che richiedono acceleratori hardware o i test delle app mobile che richiedono l'architettura Arm. Autopilot dispone di classi di calcolo predefinite cheGoogle Cloud ha configurato per eseguire carichi di lavoro con requisiti di calcolo speciali. Se hai requisiti hardware più specifici, puoi definire le tue classi di calcolo personalizzate. Quando esegui il deployment di questi carichi di lavoro specializzati, richiedi una classe di calcolo 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 dovresti fare:
Caso d'uso | Risorse |
---|---|
Controllare le proprietà dei singoli nodi durante lo scale up di un cluster | Esegui il deployment di una classe di computing personalizzata e richiedila nel manifest del carico di lavoro. Per maggiori dettagli, vedi Informazioni sulle classi di calcolo personalizzate. |
Esegui workload ARM | Richiedi la classe di calcolo Scale-Out e l'architettura
arm64 nel manifest. Per istruzioni, consulta
Eseguire il deployment dei workload Autopilot sull'architettura Arm. |
Esegui workload AI/ML accelerati | Richiedi GPU nel manifest. Per istruzioni, consulta Esegui 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 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 un calcolo a singolo thread per core | Richiedi la classe di computing Scale-Out . Per istruzioni,
consulta Scegliere le classi di computing per i pod Autopilot. |
Esegui carichi di lavoro a tolleranza di errore, come i job batch, a costi inferiori | Specifica i pod Spot nel file manifest. Per istruzioni, consulta Esecuzione di carichi di lavoro a tolleranza di errore a costi inferiori nei pod spot. Puoi utilizzare qualsiasi classe di calcolo o configurazione hardware con i pod spot. |
Esegui workload che richiedono interruzioni minime, come 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'espulsione
causata da upgrade automatici dei nodi o da eventi di riduzione della scalabilità per un massimo di sette giorni.
Per istruzioni, vedi
Estendere 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 istruzioni, vedi
Configurare l'utilizzo in eccesso 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 pod sulla piattaforma di calcolo generica predefinita o su una classe di calcolo.
Per informazioni sulle richieste di risorse predefinite dei container 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 sui 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 zonale, consulta Posizionare i pod GKE in zone specifiche.
Affinità e anti-affinità tra pod
Utilizza l'affinità e l'anti-affinità tra i pod per posizionare insieme 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à 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 della 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 sulla notte prima del ripristino settimanale del tuo gioco multiplayer, in modo che i giocatori possano accedere al momento del 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 dei carichi di lavoro (da Managed Service for 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 |
|
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.