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 agli amministratori, agli architetti e agli 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 GKE, in cui Google gestisce la configurazione del cluster, incluse nodi, scalabilità, sicurezza e altre impostazioni preconfigurate. I cluster Autopilot sono ottimizzati per l'esecuzione della maggior parte dei carichi di lavoro di produzione il provisioning delle risorse di calcolo in base ai manifest di Kubernetes. Il modello semplificato 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 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 carichi di lavoro durante l'esecuzione su GKE Autopilot. Non ti viene addebitato alcun costo per la capacità inutilizzata sui nodi, perché GKE e gestire i nodi. Tieni presente che esistono eccezioni a questo modello di determinazione del prezzo quando esegui pod su specifiche classi di calcolo 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 carichi di lavoro 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 predefinita rafforzata, 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 è necessario creare nuovi nodi per accogliere i tuoi carichi di lavoro o configurare gli upgrade e le riparazioni.
- Scalabilità: quando i carichi di lavoro presentano un carico elevato e aggiungi altri pod per gestire il traffico, come nel caso dei pod orizzontali di Kubernetes Scalabilità automatica, GKE esegue automaticamente il provisioning di nuovi nodi Pod ed espande automaticamente le risorse nei nodi esistenti in base in caso di necessità.
- 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 di affinità e la topologia di diffusione dei pod.
- Gestione delle risorse: se esegui il deployment dei carichi di lavoro senza impostare valori di 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 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 delle release: tutti i cluster Autopilot sono registrati in un canale di rilascio GKE, che garantisce che il tuo piano di controllo e i nodi vengono eseguiti sulle versioni qualificate più recenti in quel 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 Compute nel deployment anziché dover creare manualmente nuovi nodi supportati di tipi di macchine e hardware personalizzati. Puoi anche selezionare GPU per accelerare carichi di lavoro come applicazioni batch o AI/ML.
- Complessità operativa ridotta: Autopilot riduce la piattaforma l'overhead di amministrazione, eliminando la necessità di monitorare continuamente i nodi, le operazioni di scalabilità e pianificazione.
Autopilot è dotato di uno SLA che copre il piano di controllo e la capacità di calcolo utilizzata dai pod.
Pianifica i cluster Autopilot
Prima di creare un cluster, pianifica e progetta la tua architettura di 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 questi carichi di lavoro. Ad esempio, se esegui carichi di lavoro di machine learning, di richiesta di acceleratori hardware. Se sviluppi app per Android, richiedi CPU Arm.
Pianifica e richiedi la quota per il tuo progetto Google Cloud o per l'organizzazione in base dei carichi di lavoro. GKE può eseguire il provisioning dell'infrastruttura per i carichi di lavoro, se il progetto ha una quota sufficiente hardware.
Durante la pianificazione, prendi in considerazione i seguenti fattori:
- Dimensione e scalabilità stimate del cluster
- Tipo di carico di lavoro
- Layout e utilizzo del cluster
- Layout e configurazione di 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 per questi diverse considerazioni.
Networking
Quando crei un cluster Autopilot con la rete pubblica, i carichi di lavoro nel cluster possono comunicare tra loro e con internet. Questo è la modalità di rete predefinita. Google Cloud e Kubernetes forniscono funzioni e capacità di networking aggiuntive che puoi sfruttare in base per il tuo caso d'uso, ad esempio i cluster con networking privato.
La rete in Kubernetes e nel cloud è complessa. Prima di iniziare a modificare i valori predefiniti Google Cloud si imposta al posto tuo, assicurati di conoscere meglio 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 |
---|---|
Informazioni su come funziona il networking in Kubernetes e GKE |
Dopo aver appreso il modello di networking, considera la e requisiti di sicurezza di rete e di rete. Scegli GKE di networking di Google Cloud e Google Cloud. |
Pianifica la configurazione del networking di GKE | Ti consigliamo di comprendere il funzionamento del networking quote di spazio per GKE, come gli endpoint per i limiti di servizi e richieste API. Le seguenti ti aiuteranno a pianificare aspetti specifici del tuo networking configurazione:
|
Esponi i tuoi 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 |
|
Configura la sicurezza della rete del cluster |
|
Osserva il traffico di rete 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 una pianificazione e un'attenta considerazione. 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 rivolte sia agli amministratori di piattaforme che agli 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 carichi di lavoro Autopilot
In Autopilot, GKE scala automaticamente i nodi in base per il numero di pod nel tuo cluster. Se un cluster non ha carichi di lavoro in esecuzione, Autopilot può fare automaticamente lo scale down del cluster fino a zero nodi. Nella alla maggior parte dei cluster Autopilot appena creati, potresti notare che il primo la pianificazione dei 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 carico di lavoro per eseguire il provisioning di nodi aggiuntivi.
scalare automaticamente il numero di pod. nel tuo cluster, utilizza un meccanismo come Kubernetes la scalabilità automatica orizzontale dei pod, può scalare i pod in base alle metriche di CPU e memoria integrate o in base a metriche personalizzate da Cloud Monitoring. Per scoprire come configurare la scalabilità in base a vari consulta la sezione Ottimizzare la scalabilità automatica dei pod in base metriche.
Sicurezza
I cluster Autopilot attivano e applicano le impostazioni e le best practice di sicurezza per impostazione predefinita, 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 aver compreso i requisiti, crea un cluster Autopilot. I nuovi cluster Autopilot sono cluster a livello di regione e dispongono di un accessibile un indirizzo IP. A ogni cluster vengono applicate misure di protezione 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 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 manifest Kubernetes e applicalo al cluster. Per impostazione predefinita, i cluster Autopilot sono ottimizzate per eseguire la maggior parte dei carichi di lavoro di produzione.
Per una guida interattiva nella console Google Cloud per il deployment esponendo un'app, fai clic su Procedura guidata:
Alcuni carichi di lavoro potrebbero avere requisiti hardware specializzati, ad esempio ML carichi di lavoro che richiedono acceleratori hardware o test di app mobile che richiedono dell'architettura ARM. Autopilot ha classi di computing che Google Cloud è configurato per eseguire carichi di lavoro con computing speciale i tuoi requisiti. 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 computing nel del file 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 carichi di lavoro 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 di Autopilot sull'architettura Arm. |
Esegui carichi di lavoro accelerati di AI/ML | 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 un calcolo single-thread per core | Richiedi la classe di calcolo Scale-Out . Per 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 Pod spot nel tuo manifest. Per istruzioni, consulta Esegui 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. |
Esegui carichi di lavoro 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'eliminazione
a causa di upgrade automatici dei nodi o eventi di scale down per un massimo di sette giorni.
Per istruzioni, vedi
Estendi il tempo di esecuzione dei pod Autopilot. |
Consenti ai carichi di lavoro 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 quello di requests
o non impostare limiti per le risorse.
Per istruzioni, vedi
Configura il bursting dei pod in GKE. |
Autopilot consente di richiedere risorse di CPU, memoria e archiviazione temporanea per i tuoi carichi di lavoro. Gli intervalli consentiti variano a seconda che tu voglia eseguire o meno Pod sulla piattaforma di computing per uso generico predefinita o su una classe di computing.
Per informazioni sulle richieste di risorse container predefinite e degli intervalli di risorse, 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 sezione Configurare la separazione dei carichi di lavoro in GKE.
Pianifica i pod in zone specifiche utilizzando la topologia a livello di zona
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, potrebbe indicare a GKE di evitare la pianificazione di pod di frontend i 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à dei 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 verso l'alto e verso il basso, 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, potresti dire a Kubernetes di inserire un
di pod di sessione del server di gioco in ognuna delle tre zone Google Cloud
regione us-central1
.
Per esempi, ulteriori dettagli e istruzioni, consulta Vincoli di diffusione della topologia dei pod.
Gestisci e monitora i tuoi 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. Autopilot dispongono inoltre di funzionalità integrate che consentono di monitorare i cluster carichi di lavoro con scale out impegnativi.
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 nella release regolare canale, ma puoi selezionarne uno diverso che soddisfi i tuoi requisiti di stabilità di 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 in nei seguenti modi:
- 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 per un intervallo di tempo specifico, esclusioni di manutenzione. Ad esempio, puoi impostare un'esclusione della manutenzione per la durata del 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 divulgazione 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 i seguenti tipi di log e metriche automaticamente, rispettando le best practice di Google per la raccolta dei dati 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 dei carichi di lavoro (da Managed Service per Prometheus)
Non è necessaria alcuna configurazione aggiuntiva per attivare il logging e il monitoraggio. La tabella seguente mostra come interagire con la telemetria raccolta in base ai tuoi requisiti:
Caso d'uso | Risorse |
---|---|
Comprendere e accedere ai log di 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.
|
Monitora la security posture dei tuoi cluster | Utilizza la dashboard della security posture per controllare i carichi di lavoro in esecuzione rispetto alle best practice di GKE, analizza le vulnerabilità sistemi operativi per container e pacchetti di linguaggio, consigli di mitigazione. Per scoprire di più, consulta Informazioni sulla dashboard della postura di sicurezza. |
Risoluzione dei problemi
Per le procedure di risoluzione dei problemi, consulta Risoluzione dei problemi relativi ai cluster Autopilot.