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.
Questa pagina è rivolta ad amministratori, architetti e operatori che definiscono le soluzioni IT e l'architettura di sistema. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud, consulta Ruoli e attività utente comuni di GKE Enterprise.
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 eseguire il provisioning delle risorse di calcolo in base ai manifest Kubernetes. La configurazione semplificata segue le best practice e i consigli di GKE per la configurazione, la scalabilità e la sicurezza di cluster e carichi di lavoro. Per un elenco delle impostazioni predefinite, 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 workload durante l'esecuzione su GKE Autopilot. La capacità inutilizzata dei nodi non ti viene addebitata perché è GKE a gestire i nodi. Tieni presente che esistono eccezioni a questo modello di determinazione del prezzo quando esegui pod su classi di calcolo specifiche che consentono ai pod di utilizzare l'intera capacità di risorse della macchina virtuale (VM) del nodo.
Non 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, quindi puoi concentrarti sulla creazione e sul deployment delle tue applicazioni.
- Sicurezza: i cluster hanno una configurazione rafforzata predefinita, con molte impostazioni di sicurezza abilitate per impostazione predefinita. GKE applica automaticamente le patch di sicurezza ai nodi, se disponibili, rispettando le eventuali pianificazioni di manutenzione che hai configurato.
- Prezzi: il modello di prezzi di Autopilot semplifica la fatturazione, le previsioni e l'attribuzione.
- Gestione dei nodi: Google gestisce i nodi worker, quindi non devi creare nuovi nodi per adattarli ai tuoi carichi di lavoro o configurare upgrade e riparazioni automatici.
- Scalabilità: quando i tuoi workload presentano un carico elevato e aggiungi altri pod per gestire il traffico, ad esempio con la scalabilità automatica dei pod orizzontali 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 raggruppamento 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 dei workload senza impostare valori di risorse come CPU e memoria, Autopilot imposta automaticamente valori preconfigurati predefiniti e modifica le richieste di risorse a livello di workload.
- Networking: Autopilot attiva alcune funzionalità di sicurezza di rete per impostazione predefinita, ad esempio garantisce che tutto il traffico di rete del pod passi attraverso le regole firewall di Virtual Private Cloud, anche se il traffico è diretto ad altri pod nel cluster.
- Gestione dei rilasci: 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 del canale.
- Flessibilità gestita: se i tuoi carichi di lavoro hanno requisiti hardware o di risorse specifici, ad esempio una CPU o una memoria elevata, Autopilot offre classi di calcolo preconfigurate appositamente progettate per questi carichi di lavoro. Richiedi la classe di calcolo nel tuo deployment instead of dover creare manualmente nuovi nodi basati su hardware e tipi di macchine personalizzati. Puoi anche selezionare GPU per accelerare carichi di lavoro come applicazioni batch o AI/ML.
- Riduzione della complessità operativa: Autopilot riduce l'overhead di amministrazione della piattaforma eliminando la necessità di monitorare continuamente i nodi, la scalabilità e le operazioni di pianificazione.
Autopilot è fornito con 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 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, puoi richiedere 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 l'hardware.
Prendi in considerazione i seguenti fattori durante la pianificazione:
- Dimensione e scala del cluster stimate
- Tipo di workload
- Layout e utilizzo del cluster
- Configurazione e layout di 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 la rete pubblica, i workload nel cluster possono comunicare tra loro e con internet. Si tratta della modalità di rete 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.
Networking in Kubernetes e nel cloud è complessa. Prima di iniziare a modificare i valori predefiniti impostati da Google Cloud, assicurati di conoscere i concetti di base del networking. La seguente tabella fornisce risorse per scoprire di più sulla rete in GKE in base al tuo caso d'uso:
Caso d'uso | Risorse |
---|---|
Informazioni su come funziona il networking in Kubernetes e GKE |
Dopo aver appreso il modello di networking, prendi in considerazione i requisiti di networking e sicurezza della rete della tua organizzazione. Scegli le funzionalità di networking di GKE e Google Cloud che soddisfano questi criteri. |
Pianifica la configurazione di networking di GKE | Ti consigliamo di comprendere le quote per la rete di GKE, ad esempio i limiti di endpoint per servizio e 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 i servizi multi-cluster (MCS). |
Bilancia il carico del traffico in entrata |
|
Configurare la sicurezza della rete del cluster |
|
Osserva il traffico di rete di Kubernetes | Per impostazione predefinita, Autopilot utilizza GKE Dataplane V2 per le metriche e l'osservabilità .
|
Scalabilità
Gestire una piattaforma in modo efficace su larga scala richiede pianificazione e un'attenta osservazione. Devi considerare la scalabilità del tuo design, ovvero la capacità dei tuoi cluster di crescere rispettando gli obiettivi del livello di servizio (SLO). Per indicazioni dettagliate sia per gli amministratori della piattaforma sia per gli sviluppatori, consulta le linee guida per la creazione di cluster scalabili.
Devi anche prendere in considerazione le quote e i limiti di GKE, in particolare se prevedi di eseguire cluster di grandi dimensioni con potenzialmente migliaia di pod.
Scala 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. 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 accade perché il nuovo cluster Autopilot viene avviato senza nodi utilizzabili al momento della creazione e attende finché non esegui 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 orizzontale dei pod di Kubernetes, che può scalare i pod in base alle metriche di CPU e memoria integrate o in base a 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 attivano e applicano per impostazione predefinita le impostazioni e le best practice di sicurezza, inclusi molti dei consigli riportati in Migliora la sicurezza del cluster e nella Panoramica della sicurezza di GKE.
Per scoprire 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 agli indirizzi IP esterni, configura l'isolamento della rete.
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 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 di ML che richiedono acceleratori hardware o i test delle app mobile che richiedono l'architettura Arm. Autopilot ha definito predefinite classi di calcolo che Google Cloud ha configurato per eseguire carichi di lavoro con requisiti di calcolo particolari. 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 fare:
Caso d'uso | Risorse |
---|---|
Controllare le proprietà dei singoli nodi durante la scalabilità di un cluster | Esegui il deployment di una classe di calcolo personalizzata e richiedila nel manifest del carico di lavoro. Per maggiori dettagli, consulta Informazioni sui tipi di calcolo personalizzati. |
Esegui i workload ARM | Richiedi la classe di calcolo 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 di AI/ML accelerati | Richiedi le GPU nel file 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 memoria | Richiedi la classe di calcolo Balanced . Per le istruzioni,
consulta Scegliere le classi di calcolo per i pod Autopilot. |
Esegui carichi di lavoro che richiedono una scalabilità orizzontale più efficiente della capacità della CPU e calcolo a un thread per core | Richiedi la classe di calcolo Scale-Out . Per le istruzioni,
consulta Scegliere le classi di calcolo per i pod Autopilot. |
Esegui carichi di lavoro a tolleranza di errore, come i job batch, a costi inferiori | Specifica Spot Pod nel file manifest. Per le istruzioni, consulta Eseguire 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 eventi di riduzione per un massimo di sette giorni.
Per istruzioni, consulta
Estendere il tempo di esecuzione dei pod Autopilot. |
Consenti ai workload di superare le richieste se sono disponibili risorse non utilizzate nella somma delle richieste di risorse dei pod sul nodo. | Imposta la risorsa limits su un valore superiore a requests
o non impostare limiti di risorse.
Per le istruzioni, consulta
Configurare l'esplosione 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 dei container predefinite e sugli intervalli di risorse consentiti, consulta Richieste di risorse in Autopilot.
Separazione dei carichi di lavoro
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, ad esempio le etichette dei nodi personalizzate. Ad esempio, puoi chiedere 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 scoprire di più, consulta la pagina Configurare la separazione dei workload in GKE.
Pianifica 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à dei pod
Utilizza l'affinità e l'anti-affinità dei 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 di un dominio di topologia specifico, ad esempio una regione o una zona specifica. Ad esempio, potresti 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 del servizio.
Per istruzioni e ulteriori 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 tuoi workload man mano che Kubernetes aumenta e diminuisce il numero di pod, puoi impostare i limiti di distribuzione della topologia dei pod. Questo
controlla il modo in cui Kubernetes distribuisce i pod tra i nodi all'interno di un dominio di topologia,
ad esempio una regione. Ad esempio, puoi chiedere a Kubernetes di posizionare un numero specifico di pod di sessione del server di gioco in ciascuna delle tre zone Google Cloud nella regione us-central1
.
Per esempi, ulteriori dettagli e istruzioni, consulta Limiti di distribuzione della topologia del pod.
Gestire e monitorare i cluster Autopilot
In Autopilot, GKE gestisce automaticamente gli upgrade e la manutenzione del 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 delle versioni GKE
Tutti i cluster Autopilot sono registrati in un canale di rilascio GKE. Nei canali di rilascio, GKE gestisce la versione Kubernetes del cluster, trovando un equilibrio tra la disponibilità delle funzionalità e la stabilità della versione a seconda del canale. Per impostazione predefinita, i cluster Autopilot sono registrati al canale di rilascio normale, 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 la procedura di upgrade in modi diversi:
- Per controllare quando GKE può eseguire gli upgrade automatici, crea periodi di manutenzione. Ad esempio, puoi impostare il periodo di manutenzione la notte prima del ripristino settimanale del tuo gioco multiplayer, in modo che i giocatori possano accedere al ripristino senzainterruzioni.
- 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 per la manutenzione per la durata dell'evento di vendita del Black Friday e del Cyber Monday in modo che i 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 le versioni patch da un canale più recente. Ad esempio, potresti aver bisogno di una versione specifica della patch per mitigare una recente rivelazione di vulnerabilità.
Monitorare i cluster Autopilot
I cluster Autopilot hanno già attivato Cloud Logging, Cloud Monitoring e Google Cloud Managed Service per Prometheus.
I cluster Autopilot raccolgono automaticamente i seguenti tipi di log e metriche, in conformità con le best practice di Google per la raccolta della telemetria:
Log per Cloud Logging
- Log di sistema
- Log dei carichi di lavoro
- 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 per Prometheus)
Non è necessaria alcuna configurazione aggiuntiva per attivare il logging 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 GKE |
|
Monitorare le prestazioni dei cluster GKE | Un monitoraggio efficace delle prestazioni del cluster può aiutarti a ottimizzare i costi operativi dei cluster e dei carichi di lavoro.
|
Monitorare la security posture dei cluster | Utilizza la dashboard della postura di sicurezza per eseguire il controllo dei workload in esecuzione in base alle best practice di GKE, per rilevare le vulnerabilità nei sistemi operativi dei container e nei pacchetti di linguaggio e per ricevere consigli pratici per la mitigazione. Per scoprire di più, consulta Informazioni sulla dashboard della postura di sicurezza. |
Risoluzione dei problemi
Per la procedura di risoluzione dei problemi, consulta Risoluzione dei problemi relativi ai cluster Autopilot.