Google Cloud offre strumenti, prodotti, indicazioni e servizi di servizi di cui eseguire la migrazione da Amazon Elastic Kubernetes Service (Amazon EKS) Google Kubernetes Engine (GKE) Questo documento ti aiuta a progettare, implementare e convalidare un piano per la migrazione da Amazon EKS a GKE. Il presente documento fornisce inoltre se stai valutando l'opportunità di eseguire la migrazione e vuoi esplorare come potrebbe essere una migrazione. Oltre a essere eseguito su Amazon Elastic Compute Cloud (Amazon EC2), Amazon EKS offre alcune altre opzioni di deployment, come Amazon EKS su output AWS e Amazon EKS ovunque. Questo documento è incentrato su Amazon EKS su EC2.
Questo documento fa parte di una serie in più parti sulla migrazione da AWS a Google Cloud che include i seguenti documenti:
- Inizia
- Eseguire la migrazione da Amazon EC2 a Compute Engine
- Eseguire la migrazione da Amazon S3 a Cloud Storage
- Esegui la migrazione da Amazon EKS a Google Kubernetes Engine (questo documento)
- Eseguire la migrazione da Amazon RDS e Amazon Aurora per MySQL a Cloud SQL per MySQL
- Esegui la migrazione da Amazon RDS e Amazon Aurora per PostgreSQL a Cloud SQL per PostgreSQL e AlloyDB per PostgreSQL
- Eseguire la migrazione da Amazon RDS per SQL Server a Cloud SQL per SQL Server
GKE è un servizio Kubernetes gestito da Google eseguire il deployment e gestire applicazioni containerizzate su larga scala dell'infrastruttura e offre funzionalità utili per la gestione ad esempio:
- Due versioni: GKE Standard e GKE Enterprise. Con GKE Standard, hai accesso a un livello standard di funzionalità di base. Con GKE Enterprise, hai accesso a tutte le funzionalità di GKE. Per ulteriori informazioni, consulta Versioni di GKE.
- Due modalità di funzionamento: Standard e Autopilot. Con Standard, gestisci l'infrastruttura di base e la configurazione di ogni nodo nel cluster GKE. Con Autopilot, GKE gestisce all'infrastruttura sottostante, come configurazione dei nodi, aggiornamenti automatici, sicurezza di base e configurazione di rete. Per ulteriori informazioni sulle modalità di funzionamento di GKE, consulta Scegliere una modalità di funzionamento GKE.
- Accordo sul livello del servizio specifico di settore per i pod quando si usa Autopilot in più zone.
- Creazione ed eliminazione automatizzati di pool di nodi con il provisioning automatico dei nodi.
- Networking multi-cluster gestito da Google per aiutarti a progettare e implementare architetture distribuite e altamente disponibili per i tuoi carichi di lavoro.
Per saperne di più su GKE, consulta Panoramica di GKE.
Per questa migrazione a Google Cloud, ti consigliamo di seguire il framework di migrazione descritto Eseguire la migrazione a Google Cloud: inizia.
Il seguente diagramma illustra il percorso del tuo percorso di migrazione.
Potresti eseguire la migrazione dal tuo ambiente di origine a Google Cloud in una serie di iterazioni, ad esempio potresti migrare prima alcuni carichi di lavoro e altri in un secondo momento. Per ogni singola iterazione della migrazione, segui le fasi del framework generale per la migrazione:
- Valuta e scopri i tuoi carichi di lavoro e i tuoi dati.
- Pianifica e crea una base su Google Cloud.
- Esegui la migrazione dei carichi di lavoro e dei dati in Google Cloud.
- Ottimizza il tuo ambiente Google Cloud.
Per ulteriori informazioni sulle fasi di questo framework, consulta Eseguire la migrazione a Google Cloud: inizia.
Per progettare un piano di migrazione efficace, ti consigliamo di convalidare ogni passaggio del piano e assicurarti di avere una strategia di rollback. Per aiutarti a convalidare di migrazione, consulta Eseguire la migrazione a Google Cloud: best practice per la convalida di un piano di migrazione.
Valuta l'ambiente di origine
Nella fase di valutazione, devi determinare i requisiti e le dipendenze per eseguire la migrazione dell'ambiente di origine a Google Cloud.
La fase di valutazione è fondamentale per il successo della migrazione. Devi conoscere a fondo i carichi di lavoro di cui vuoi eseguire la migrazione, i loro requisiti dalle loro dipendenze e dal tuo ambiente attuale. Per pianificare ed eseguire correttamente una migrazione a Google Cloud, devi conoscere il punto di partenza.
La fase di valutazione è composta dalle seguenti attività:
- Crea un inventario completo dei tuoi carichi di lavoro.
- Cataloga i carichi di lavoro in base alle loro proprietà e dipendenze.
- Forma e istruisci i tuoi team su Google Cloud.
- Crea esperimenti e proof of concept su Google Cloud.
- Calcola il costo totale di proprietà (TCO) dell'ambiente di destinazione.
- Scegli la strategia di migrazione per i tuoi carichi di lavoro.
- Scegli gli strumenti di migrazione.
- Definisci il piano e le tempistiche della migrazione.
- Convalida il piano di migrazione.
Per ulteriori informazioni sulla fase di valutazione e su queste attività, consulta Eseguire la migrazione a Google Cloud: valutare e scoprire i carichi di lavoro. Le sezioni seguenti si basano sulle informazioni contenute nel documento.
Creare gli inventari
Per definire l'ambito della migrazione, puoi creare due inventari:
- L'inventario dei tuoi cluster.
- L'inventario dei carichi di lavoro di cui viene eseguito il deployment nei cluster.
Dopo aver creato questi inventari, puoi:
- Valuta i processi operativi e di deployment per la tua origine completamente gestito di Google Cloud.
- Valuta i servizi di supporto e le dipendenze esterne.
Crea l'inventario dei tuoi cluster
Per creare l'inventario dei tuoi cluster, tieni presente quanto segue per ciascun cluster:
- Numero e tipo di nodi. Quando conosci il numero di nodi e le caratteristiche di ciascun nodo nel tuo ambiente attuale, puoi determinare le dimensioni dei cluster quando passi a GKE. I nodi nel nuovo ambiente potrebbero essere eseguiti su un'architettura hardware diversa o una generazione di testi rispetto a quelle che usi nel tuo ambiente. Il funzionamento di ogni architettura e generazione è diverso, pertanto il numero di nodi di cui hai bisogno nel nuovo ambiente potrebbe essere diverso da quello dell'ambiente attuale. Valuta qualsiasi tipo di hardware in uso nei tuoi nodi, ad esempio dispositivi di archiviazione ad alte prestazioni, GPU e TPU. Valuta quale immagine del sistema operativo stai utilizzando sui tuoi nodi.
- Cluster interno o esterno. Valuta a quali agenti, interni o esterni al tuo ambiente, è esposto ciascun cluster. Per supportare i tuoi casi d'uso, questa valutazione include i carichi di lavoro in esecuzione nel cluster e le interfacce che interagiscono con i cluster.
- Multitenancy. Se gestisci cluster multi-tenant nel tuo ambiente, valuta se funzionano nel nuovo ambiente Google Cloud. Ora è un buon momento per valutare come migliorare i tuoi cluster multi-tenant, perché la tua strategia di multitenancy influisce sul modo in cui crei la tua base su Google Cloud.
- Versione Kubernetes. Raccogliere informazioni su Kubernetes dei cluster per valutare se c'è una mancata corrispondenza queste versioni quelle disponibili in GKE. Se utilizzi una versione precedente di Kubernetes o una rilasciata di recente, potresti utilizzare funzionalità non disponibili in GKE. Le funzionalità potrebbero essere ritirate o la versione di Kubernetes che le include non è ancora disponibile in GKE.
- Ciclo di upgrade di Kubernetes. Per mantenere un ambiente affidabile, scopri come gestisci gli upgrade di Kubernetes e come il tuo ciclo di upgrade si relaziona agli upgrade di GKE.
- Pool di nodi. Se utilizzi una qualsiasi forma di raggruppamento dei nodi, potrebbe essere utile considerare come questi raggruppamenti siano mappati al concetto di pool di nodi in GKE perché i criteri di raggruppamento potrebbero non essere adatti con GKE.
- Inizializza il nodo. Valuta come viene inizializzato ogni nodo prima di contrassegnarlo come disponibile per l'esecuzione dei carichi di lavoro, in modo da poter trasferire queste procedure di inizializzazione a GKE.
- Configurazione di rete. Valuta la configurazione di rete dei tuoi cluster, la loro allocazione degli indirizzi IP, la modalità di configurazione dei plug-in di rete, la modalità di configurazione dei server DNS e dei fornitori di servizi DNS, se hai configurato qualsiasi forma di NAT o SNAT per questi cluster e se fanno parte di un ambiente multi-cluster.
- Conformità: valuta gli eventuali requisiti normativi e di conformità che il tuo cluster sono tenuti a soddisfare e se li soddisfi i tuoi requisiti.
- Quote e limiti. Valuta come hai configurato quote e limiti per cluster. Ad esempio, quanti pod può eseguire ogni nodo? Quanti nodi può di un cluster Kubernetes?
- Etichette e tag. Valuta gli eventuali metadati applicati a cluster, pool di nodi e nodi e il modo in cui li utilizzi. Ad esempio, potresti generare report con un'attribuzione dei costi dettagliata e basata su etichette.
I seguenti elementi valutati nel tuo inventario sono incentrati sulla sicurezza della tua infrastruttura e dei cluster Kubernetes:
- Spazi dei nomi. Se usi Kubernetes Spazi dei nomi nei tuoi cluster per separare logicamente le risorse, si trovano in ogni spazio dei nomi e capirai perché l'hai creato la separazione degli utenti. Ad esempio, potresti utilizzare gli spazi dei nomi come parte una strategia multi-tenancy. Potresti avere carichi di lavoro di cui è stato eseguito il deployment in spazi dei nomi riservati per i componenti di sistema Kubernetes e potresti non avere lo stesso controllo in GKE.
- Controllo degli accessi basato sui ruoli (RBAC). Se utilizzi l'autorizzazione RBAC nei tuoi cluster, elenca una descrizione di tutti i ClusterRole e ClusterRoleBindings che hai configurato nei tuoi cluster.
- Norme della rete. Elenca tutti norme della rete configurato nei tuoi cluster e comprendere come funzionano i criteri di rete in GKE.
- Contesto di sicurezza dei pod. Acquisisci informazioni sui contesti di sicurezza dei pod che hai configurato nei tuoi cluster e scopri come funzionano in GKE.
- Account di servizio. Se un processo nel cluster interagisce con il server API Kubernetes, acquisisci informazioni sugli account di servizio in uso.
Quando crei l'inventario dei tuoi cluster Kubernetes, potresti scoprire che alcuni dei cluster devono essere dismessi durante la migrazione. Marca che il piano di migrazione includa il ritiro di queste risorse.
Creare l'inventario dei carichi di lavoro Kubernetes
Dopo aver completato l'inventario dei cluster Kubernetes e aver valutato la sicurezza del tuo ambiente, crea l'inventario dei carichi di lavoro di cui è stato eseguito il deployment in questi cluster. Quando valuti i tuoi carichi di lavoro, raccogli informazioni sui seguenti aspetti:
- Pod e controller. Per dimensionare i cluster nel nuovo ambiente, valuta quante di ogni carico di lavoro di cui hai eseguito il deployment e se utilizzi Quote delle risorse e limiti di consumo delle risorse di calcolo. Raccogliere informazioni sui carichi di lavoro in esecuzione sui nodi del piano di controllo di ciascun cluster e sui controller utilizzati da ciascun carico di lavoro. Per ad esempio, quanti Deployment stai usando? Quanti DaemonSets stai usando?
- Job e CronJob. I tuoi cluster e carichi di lavoro potrebbero dover eseguire job o CronJob nell'ambito delle procedure di inizializzazione o di funzionamento. Valuta il numero di istanze di job e CronJob di cui hai eseguito il deployment e responsabilità e criteri di completamento per ogni istanza.
- Gestori della scalabilità automatica di Kubernetes. Per eseguire la migrazione dei criteri di scalabilità automatica nel nuovo ambiente, scopri come l'Horizontal Pod Autoscaler e Vertical Pod Autoscaler, per lavorare su GKE.
- Carichi di lavoro stateless e stateful. I carichi di lavoro stateless non archiviano dati o lo stato nel cluster o nell'archiviazione permanente. Le applicazioni con stato salvano i dati per un utilizzo successivo. Per ogni carico di lavoro, valuta che sono stateless e che sono stateful, poiché la migrazione carichi di lavoro stateful in genere è più difficile della migrazione di quelle stateless.
- Funzionalità di Kubernetes. Dall'inventario del cluster, sai quale Versione di Kubernetes eseguita da ciascun cluster. Esamina il note di rilascio di ogni versione di Kubernetes per sapere quali funzionalità vengono distribuite le funzionalità che ritira. Quindi valuta i carichi di lavoro rispetto le funzionalità di Kubernetes di cui hai bisogno. L'obiettivo di questa attività è conoscere se stai utilizzando funzionalità deprecate o non ancora disponibili in GKE. Se noti delle funzioni non disponibili, abbandona le funzionalità deprecate e adotta quelle nuove quando vengono disponibile in GKE.
- Spazio di archiviazione. Per i carichi di lavoro stateful, valuta se utilizzano PersistenceVolumeClaims. Elenca eventuali requisiti di archiviazione, come dimensioni e modalità di accesso, e come questi PersistentVolumeClaim vengono mappati ai PersistentVolume. Per tenere conto della crescita futura, valuta se devi espandi qualsiasi PersistenceVolumeClaim.
- Configurazione e inserimento di secret. Per evitare di ricostruire gli artefatti di cui è possibile eseguire il deployment ogni volta che si verifica una modifica nella configurazione del tuo ambiente, inserisci la configurazione e i secret nei pod utilizzando ConfigMap e Secret. Per ogni carico di lavoro, valuta quali ConfigMap e Secret vengono utilizzati e come vengono compilati questi oggetti.
- Dipendenze. È probabile che i carichi di lavoro non funzionino in modo isolato. Loro potrebbe avere dipendenze interne al cluster o dall'esterno sistemi operativi. Per ogni carico di lavoro, acquisisci le dipendenze e verifica se i carichi di lavoro hanno una tolleranza per i casi in cui le dipendenze non sono disponibili. Per Ad esempio, le dipendenze comuni includono file system distribuiti, database piattaforme di distribuzione dei segreti, sistemi di gestione di identità e accessi meccanismi di Service Discovery e qualsiasi altro sistema esterno.
- Servizi Kubernetes. Per esporre i carichi di lavoro a risorse per i client esterni, utilizza Servizi. Per ogni servizio, devi conoscere il relativo tipo. Per esposizione esterna e servizi, valuta in che modo quel servizio interagisce con il resto dei tuoi servizi dell'infrastruttura. Ad esempio, in che modo la tua infrastruttura supporta Servizi LoadBalancer, Oggetti gateway, e Oggetti in entrata? Quali Controller di ingressi hai disegnato nei tuoi cluster?
- Mesh di servizi. Se nel tuo ambiente utilizzi un mesh di servizi, e valutarne la configurazione. Devi anche sapere quanti cluster intervalli, quali servizi fanno parte della mesh e come modifichi la topologia del mesh.
- Incompatibilità e tolleranze e affinità e anti-affinità. Per ogni pod e nodo, valuta se hai configurato incompatibilità dei nodi, tolleranze dei pod o affinità per personalizzare la pianificazione dei pod nei tuoi cluster Kubernetes. Queste strutture potrebbero anche fornirti informazioni su possibili configurazioni non omogenee di nodi o pod e potrebbe significare che i pod, i nodi o entrambi devono essere valutati attenzione e cura. Ad esempio, se hai configurato un determinato insieme di pod per essere pianificato solo su determinati nodi del tuo cluster Kubernetes, potrebbe significare che i pod richiedono risorse specializzate disponibili solo su quei nodi.
- Autenticazione: valuta le modalità di autenticazione dei carichi di lavoro rispetto alle risorse nel cluster e rispetto a risorse esterne.
Valuta i servizi di supporto e le dipendenze esterne
Dopo aver valutato i cluster e i relativi carichi di lavoro, valuta il resto aspetti e servizi di supporto all'interno della tua infrastruttura, ad esempio:
- StorageClasses e PersistentVolumes. Valuta il modo in cui dell'infrastruttura supporta gli oggetti PersistentVolumeClaim StorageClasses della il provisioning dinamico, e provisioning statico PersistentVolumes. Per ogni PersistentVolume, prendi in considerazione quanto segue: capacità, modalità del volume, modalità di accesso, classe, criterio di recupero, opzioni di montaggio e affinità dei nodi.
- VolumeSnapshots e VolumeSnapshotContents. Per ogni PersistentVolume, valuta se hai configurato VolumeSnapshot se devi eseguire la migrazione di VolumeSnapshotContents esistente.
- Driver Container Storage Interface (CSI). Se sono implementati nei tuoi cluster, valuta se questi driver sono compatibili con GKE e se è necessario adattare la configurazione dei volumi in modo che funzionino con driver CSI compatibili con GKE.
- Archiviazione dei dati. Se ti basi su sistemi esterni per eseguire il provisioning gli oggetti PersistentVolume, forniscono un modo per i carichi di lavoro dell'ambiente GKE per utilizzare questi sistemi. La localizzazione dei dati influisce sul rendimento dei carichi di lavoro con stato, perché la latenza tra i sistemi esterni e l'ambiente GKE è proporzionale alla distanza tra loro. Per ogni sistema di archiviazione dei dati esterni, valutane il tipo, ad esempio volumi a blocchi, archiviazione di file o archiviazione di oggetti, nonché eventuali requisiti di prestazioni e disponibilità che deve soddisfare.
- Risorse personalizzate e componenti aggiuntivi Kubernetes. Raccogli informazioni su eventuali risorse Kubernetes personalizzate e su eventuali componenti aggiuntivi Kubernetes che potresti aver disegnato nei tuoi cluster, perché potrebbero non funzionare in GKE o potresti doverli modificare. Ad esempio, se una risorsa personalizzata interagisce con un sistema esterno, valuta se è applicabile al tuo ambiente Google Cloud.
- Backup. Valuta come esegui il backup della configurazione dei tuoi cluster e dei dati dei carichi di lavoro con stato nell'ambiente di origine.
Valuta le procedure di deployment e operative
È importante avere una chiara comprensione di come l'implementazione dei processi operativi. Queste procedure sono una parte fondamentale delle pratiche che preparano e gestiscono l'ambiente di produzione e i carichi di lavoro in esecuzione.
I processi operativi e di deployment potrebbero creare gli artefatti per il corretto funzionamento dei carichi di lavoro. Pertanto, dovresti raccogliere informazioni su ogni tipo di artefatto. Ad esempio, un elemento può essere un pacchetto del sistema operativo, un pacchetto di deployment dell'applicazione, un'immagine del sistema operativo, un'immagine del contenitore o qualcos'altro.
Oltre al tipo di elemento, valuta come completare le seguenti attività:
- Sviluppa i tuoi carichi di lavoro. Valutare i processi seguiti dai team di sviluppo dei carichi di lavoro. Ad esempio, in che modo i team di sviluppo progettando, programmando e testando i carichi di lavoro?
- Genera gli artefatti di cui esegui il deployment nel tuo ambiente di origine. A dei carichi di lavoro nell'ambiente di origine, potresti generare artefatti di cui è possibile eseguire il deployment, come immagini container o immagini del sistema operativo potresti personalizzare elementi esistenti, come la gestione le immagini di sistema installando e configurando il software. Raccogliere informazioni su come generi questi elementi ti aiuta a verificare che siano adatti per il deployment in Google Cloud.
Archivia gli elementi. Se produci artefatti che archivi in un Artifact Registry nel tuo ambiente di origine, devi rendere gli artefatti disponibili nel tuo ambiente Google Cloud. Puoi farlo adottando strategie come le seguenti:
- Stabilisci un canale di comunicazione tra gli ambienti. Rendi il artefatti nel tuo ambiente di origine raggiungibili dalla destinazione nell'ambiente Google Cloud.
- Esegui il refactoring del processo di creazione degli artefatti: completa un piccolo refactoring del tuo in modo da poter archiviare gli artefatti sia nell'ambiente di origine e l'ambiente di destinazione. Questo approccio supporta della migrazione creando un'infrastruttura come un repository di artefatti prima di implementare i processi di creazione degli artefatti nel Google Cloud completamente gestito di Google Cloud. Puoi implementare questo approccio direttamente o basarti su l'approccio precedente, che prevede per prima cosa un canale di comunicazione.
La disponibilità degli artefatti sia nell'ambiente di origine che in quello di destinazione ti consente per concentrarsi sulla migrazione senza dover implementare i processi di creazione degli artefatti nell'ambiente Google Cloud di destinazione nell'ambito della migrazione.
Scansiona e firma il codice. Nell'ambito dei processi di build degli artefatti, potresti utilizzando la scansione del codice per proteggerti dalle vulnerabilità comuni per evitare un'esposizione accidentale della rete e la firma del codice per garantire che il codice attendibile viene eseguito nei tuoi ambienti.
Esegui il deployment degli artefatti nell'ambiente di origine. Dopo la generazione artefatti di cui è possibile eseguire il deployment, potresti eseguirne il deployment nel tuo ambiente di origine. Ti consigliamo di valutare ogni processo di deployment. La valutazione consente di verificare che i processi di implementazione siano compatibili con Google Cloud. Inoltre, ti aiuta a comprendere lo sforzo necessario per e infine il refactoring dei processi. Ad esempio, se i tuoi processi di deployment funzionino solo con il tuo ambiente di origine, potresti doverne eseguire il refactoring definire come target il tuo ambiente Google Cloud.
Inserisci la configurazione di runtime. Potresti inserire la configurazione di runtime per cluster, ambienti di runtime o deployment di carichi di lavoro specifici. La potrebbe inizializzare le variabili di ambiente e altre configurazioni come secret, credenziali e chiavi. Per garantire che i tuoi i processi di iniezione della configurazione runtime funzionano su Google Cloud, ti consigliamo di valutare le modalità di configurazione dei carichi di lavoro in esecuzione dell'ambiente di origine.
Logging, monitoraggio e profilazione. Valuta le procedure di registrazione, monitoraggio e profiling che hai implementato per monitorare lo stato di integrità del tuo ambiente di origine, le metriche di interesse e il modo in cui utilizzi i dati forniti da queste procedure.
Autenticazione cluster. Valuta la modalità di autenticazione rispetto all'ambiente di origine.
Esegui il provisioning e configura le risorse. Per preparare l'ambiente di origine, potresti aver progettato e implementato processi che eseguono il provisioning e la configurazione delle risorse. Ad esempio, potresti utilizzare Terraform insieme a strumenti di gestione della configurazione per eseguire il provisioning e configurare le risorse nel tuo ambiente di origine.
Strumenti per creare l'inventario dell'ambiente di origine
Per creare l'inventario dei tuoi cluster Amazon EKS, ti consigliamo di utilizzare Migration Center, la piattaforma unificata di Google Cloud che ti consente di accelerare il tuo percorso verso il cloud end-to-end dall'ambiente attuale a Google Cloud. Migration Center ti consente di importare i dati da Amazon EKS e altre risorse AWS. Il Centro di migrazione consiglia quindi i servizi Google Cloud pertinenti a cui puoi eseguire la migrazione.
Perfeziona l'inventario dei tuoi cluster e carichi di lavoro Amazon EKS
I dati forniti da Migration Center potrebbero non acquisire completamente le dimensioni che ti interessano. In questo caso, puoi integrare questi dati con i risultati di altri meccanismi di raccolta dei dati che crei e che si basano su API AWS, strumenti per sviluppatori AWS e sull'interfaccia a riga di comando AWS.
Oltre ai dati che ottieni da Migration Center, tieni conto dei seguenti punti dati per ogni cluster Amazon EKS di cui vuoi eseguire la migrazione:
- Prendi in considerazione gli aspetti e le funzionalità specifici di Amazon EKS per ogni cluster Amazon EKS, tra cui:
- Cluster privati
- Controllo degli accessi agli endpoint del cluster
- Crittografia dei secret
- Gruppi di nodi gestiti e nodi autogestiti
- Tag sulle risorse Amazon EKS
- AMI Amazon personalizzate in EKS
- Utilizzo di Amazon EKS Fargate
- Utilizzo di Amazon EKS Managed Prometheus
- Configurazione dell'autenticazione OpenID Connect
- Valuta le tue modalità di autenticazione nei cluster Amazon EKS e hai configurato AWS Identity and Access Management (IAM) per Amazon EKS.
- Valuta la configurazione di rete dei tuoi cluster Amazon EKS.
Pianifica e crea le basi
Nella fase di pianificazione e creazione, esegui il provisioning e la configurazione dell'infrastruttura segui questi passaggi:
- Supporta i tuoi carichi di lavoro nel tuo ambiente Google Cloud.
- Connetti l'ambiente di origine e l'ambiente Google Cloud per completare la migrazione.
La fase di pianificazione e compilazione è composta dalle seguenti attività:
- Crea una gerarchia di risorse.
- Configura Identity and Access Management (IAM) di Google Cloud.
- Configura la fatturazione.
- Configura la connettività di rete.
- Rafforza la tua sicurezza.
- Configura il logging, il monitoraggio e gli avvisi.
Per ulteriori informazioni su ciascuna di queste attività, consulta la pagina Eseguire la migrazione a Google Cloud: pianifica e crea le basi.
Le seguenti sezioni integrano le considerazioni riportate in Esegui la migrazione a Google Cloud: pianifica e crea le basi.
Pianifica il multitenancy
Per progettare una gerarchia delle risorse efficiente, valuta come le strutture aziendali e organizzative vengono mappate in Google Cloud. Ad esempio, se un ambiente multi-tenant su GKE, puoi scegliere tra le seguenti opzioni:
- Creare un progetto Google Cloud per ogni tenant.
- Condivisione di un progetto tra diversi tenant e provisioning di più tenant cluster GKE.
- Utilizzo degli spazi dei nomi Kubernetes.
La scelta dipende dalle esigenze di isolamento, complessità e scalabilità. Per Ad esempio, avere un progetto per tenant isola i tenant l'uno dall'altro, ma la gerarchia delle risorse diventa più complessa da gestire a causa dell'elevato numero di progetti. Tuttavia, anche se la gestione degli spazi dei nomi Kubernetes è relativamente più semplice di una gerarchia di risorse complessa, questa opzione non garantisce lo stesso isolamento. Ad esempio, il piano di controllo potrebbe essere condiviso tra i tenant. Per maggiori informazioni, consulta Multitenancy del cluster.
Configura la gestione di identità e accessi
GKE supporta diverse opzioni per la gestione dell'accesso alle risorse all'interno del progetto Google Cloud e dei relativi cluster utilizzando RBAC. Per ulteriori informazioni, vedi Controllo dell'accesso.
Configura il networking GKE
La configurazione di rete è un aspetto fondamentale del tuo ambiente. Prima del giorno per il provisioning e la configurazione di qualsiasi cluster, ti consigliamo il Modello di rete GKE, le best practice per il networking GKE, e come pianificare gli indirizzi IP durante la migrazione a GKE.
Configura monitoraggio e avvisi
Avere un quadro chiaro del rendimento dell'infrastruttura e dei carichi di lavoro è fondamentale per trovare aree di miglioramento. GKE ha profonde integrazioni con Google Cloud Observability, per ottenere informazioni sul logging, sul monitoraggio e sulla profilazione dei tuoi e i carichi di lavoro GKE all'interno di questi cluster.
Esegui la migrazione dei dati e il deployment dei carichi di lavoro
Nella fase di deployment, svolgi le seguenti operazioni:
- Esegui il provisioning e la configurazione dell'ambiente GKE.
- Configura i tuoi cluster GKE.
- Esegui il refactoring dei carichi di lavoro.
- Esegui il refactoring dei processi di deployment e operativi.
- Esegui la migrazione dei dati dal tuo ambiente di origine a Google Cloud.
- Esegui il deployment dei carichi di lavoro nel tuo ambiente GKE.
- Convalida i carichi di lavoro e l'ambiente GKE.
- Esponi i carichi di lavoro in esecuzione su GKE.
- Sposta il traffico dall'ambiente di origine all'ambiente GKE.
- Esegui il ritiro dell'ambiente di origine.
Esegui il provisioning e configura l'ambiente Google Cloud
Prima di spostare qualsiasi carico di lavoro nel nuovo ambiente Google Cloud, devi eseguire il provisioning dei cluster GKE.
GKE supporta l'abilitazione di determinate funzionalità nei cluster esistenti, ma alcune potrebbero essere abilitabili solo al momento della creazione del cluster. A evitare interruzioni e semplificare la migrazione, ti consigliamo di e abilitare le funzionalità del cluster di cui hai bisogno al momento della creazione del cluster. Altrimenti, potresti dover eliminare e ricreare i cluster nel caso in cui non possono essere abilitate dopo la creazione di un cluster.
Dopo la fase di valutazione, ora sai come eseguire il provisioning dei cluster GKE nel nuovo ambiente Google Cloud per soddisfare le tue esigenze. Per eseguire il provisioning dei cluster, tieni presente quanto segue:
- Il numero di cluster, il numero di nodi per cluster, i tipi di cluster, la configurazione di ciascun cluster e di ogni nodo di ogni cluster.
- La modalità di funzionamento di ciascun cluster. GKE offre due modalità delle operazioni per i cluster: GKE Autopilot GKE Standard.
- Il numero di cluster privati.
- La scelta tra networking VPC nativo o basato su router.
- Le versioni e i canali di rilascio di Kubernetes di cui hai bisogno nei tuoi cluster GKE.
- I pool di nodi per raggruppare logicamente i nodi in GKE e se devi creare automaticamente pool di nodi con provisioning automatico dei nodi.
- Le procedure di inizializzazione che puoi trasferire all'ambiente GKE e alle nuove procedure che puoi implementare. Ad esempio, puoi avviare automaticamente i nodi GKE implementando una o più procedure di inizializzazione, eventualmente privilegiate, per ogni nodo o pool di nodi nei tuoi cluster.
- I piani di scalabilità per ogni cluster.
- Le funzionalità GKE aggiuntive di cui hai bisogno, Cloud Service Mesh e i componenti aggiuntivi di GKE, come Backup per GKE.
Per ulteriori informazioni sul provisioning dei cluster GKE, consulta:
- Informazioni sulle scelte di configurazione del cluster.
- Gestisci, configura ed esegui il deployment dei cluster GKE.
- Informazioni sulla sicurezza di GKE.
- Rafforza la sicurezza del cluster.
- Panoramica del networking di GKE.
- Best practice per il networking di GKE.
- Panoramica dello spazio di archiviazione per i cluster GKE.
Gestione del parco risorse
Quando esegui il provisioning dei tuoi cluster GKE, potresti renderti conto che ne servono una grande quantità per supportare tutti i casi d'uso del tuo ambiente. Ad esempio, potresti dover separare la produzione ambienti non di produzione o servizi separati tra team o aree geografiche. Per ulteriori informazioni, consulta i casi d'uso multi-cluster.
Con l'aumento del numero di cluster, l'ambiente GKE potrebbe diventano più difficili da gestire perché la gestione di un gran numero di cluster grandi difficoltà operative e di scalabilità. GKE fornisce strumenti e funzionalità per aiutarti a gestire i parchi risorse, un raggruppamento logico di cluster. Per saperne di più, consulta Gestione del parco risorse.
Networking multi-cluster
Per aiutarti a migliorare l'affidabilità del tuo ambiente GKE e a distribuire i carichi di lavoro su più cluster GKE, puoi utilizzare:
- Multi-Cluster Service Discovery, un meccanismo di rilevamento e chiamata dei servizi tra cluster. I servizi sono rilevabili e accessibili in tutti i cluster GKE. Per ulteriori informazioni, consulta Multi-Cluster Service Discovery.
- Gateway multi-cluster, un bilanciamento del carico del traffico in entrata tra cluster meccanismo di attenzione. Per ulteriori informazioni, vedi Deployment di gateway multi-cluster.
- Mesh multi-cluster su Cloud Service Mesh gestito. Per ulteriori informazioni, consulta Configurare un mesh multicluster.
Per saperne di più sulla migrazione da un cluster GKE a cluster singolo in un ambiente GKE multi-cluster, consulta Esegui la migrazione al networking multi-cluster.
Configura i cluster GKE
Dopo aver eseguito il provisioning dei cluster GKE e prima di eseguire il deployment carico di lavoro o migrazione dei dati, devi configurare spazi dei nomi, RBAC, criteri di rete account di servizio e altri oggetti Kubernetes e GKE cluster GKE.
Per configurare gli oggetti Kubernetes e GKE nei cluster GKE, ti consigliamo di:
- Assicurati di disporre delle credenziali e delle autorizzazioni necessarie per accedere a entrambi nei cluster nel tuo ambiente di origine e nel tuo cluster GKE completamente gestito di Google Cloud.
- Valuta se gli oggetti nei cluster Kubernetes del tuo ambiente di origine sono compatibili con GKE e come le implementazioni differiscono dall'ambiente di origine e da GKE.
- Esegui il refactoring di qualsiasi oggetto incompatibile per renderlo compatibile con GKE, o ritirarlo.
- Crea questi oggetti nei tuoi cluster GKE.
- Configura gli oggetti aggiuntivi di cui hai bisogno nei tuoi cluster GKE.
Config Sync
Per aiutarti ad adottare GitOps best practice per gestire la configurazione dei tuoi cluster GKE in base alla scalabilità di GKE, ti consigliamo di usare Config Sync, un servizio GitOps per il deployment delle configurazioni da una fonte attendibile. Ad esempio, puoi memorizzare la configurazione dei tuoi cluster GKE in un repository Git e utilizzare Config Sync per applicarla.
Per ulteriori informazioni, consulta la sezione Architettura di Config Sync.
Policy Controller
Policy Controller consente di applicare e applicare i criteri programmabili per per assicurarti che i cluster e i carichi di lavoro GKE vengano eseguiti in un ambiente in modo conforme. Man mano che il tuo ambiente GKE scala, puoi utilizzare Policy Controller per applicare automaticamente criteri, pacchetti di criteri e vincoli a tutti i tuoi cluster GKE. Ad esempio, puoi limita i repository da cui è possibile estrarre le immagini container può richiedere che ogni spazio dei nomi abbia almeno un'etichetta per garantire il monitoraggio accurato del consumo di risorse.
Per ulteriori informazioni, vedi Policy Controller.
Esegui il refactoring dei carichi di lavoro
Una best practice per progettare carichi di lavoro containerizzati è evitare dipendenze dalla piattaforma di orchestrazione dei container. Questo potrebbe non essere sempre possibile in base ai requisiti e alla progettazione dei tuoi carichi di lavoro. Ad esempio, i carichi di lavoro potrebbero dipendere da funzionalità specifiche dell'ambiente disponibili solo nell'ambiente di origine, come componenti aggiuntivi, estensioni e integrazioni.
Sebbene sia possibile eseguire la migrazione della maggior parte dei carichi di lavoro così com'è verso GKE, potresti dover dedicare del tempo a eseguire il refactoring carichi di lavoro che dipendono da caratteristiche specifiche dell'ambiente, per queste dipendenze, passando poi ad alternative disponibili con GKE.
Per eseguire il refactoring dei carichi di lavoro prima di eseguirne la migrazione a GKE, devi le seguenti:
- Esamina le funzionalità specifiche dell'ambiente di origine, come componenti aggiuntivi, estensioni e integrazioni.
- Adotta soluzioni GKE alternative appropriate.
- Esegui il refactoring dei carichi di lavoro.
Rivedi le funzionalità specifiche dell'ambiente di origine
Se utilizzi funzionalità specifiche dell'ambiente di origine e i carichi di lavoro dipendono su queste funzionalità, devi:
- Trova soluzioni GKE alternative adatte.
- Esegui il refactoring dei carichi di lavoro per utilizzare le soluzioni GKE alternative.
Nell'ambito di questa revisione, ti consigliamo di procedere come segue:
- Valuta la possibilità di ritirare una di queste funzionalità specifiche dell'ambiente di origine.
- Valutare quanto sia fondamentale una funzionalità specifica dell'ambiente di origine per il successo della migrazione.
Adotta soluzioni GKE alternative idonee
Dopo aver esaminato le funzionalità specifiche dell'ambiente di origine e averle mappate a soluzioni GKE alternative adatte, le adotti in per l'ambiente GKE. Per ridurre la complessità della migrazione, ti consigliamo di procedere come segue:
- Evita di adottare soluzioni GKE alternative per le funzionalità specifiche dell'ambiente di origine che intendi ritirare.
- Concentrati sull'adozione di soluzioni GKE alternative per le funzionalità specifiche dell'ambiente di origine più critiche e pianifica progetti di migrazione dedicati per il resto.
Esegui il refactoring dei carichi di lavoro
Sebbene la maggior parte dei carichi di lavoro possa funzionare così come in GKE, potresti dover effettuare il refactoring di alcuni di essi, soprattutto se dipendevano specifiche dell'ambiente per cui hai adottato le soluzioni GKE.
Questo refactoring potrebbe comportare:
- i descrittori degli oggetti Kubernetes, come i deployment e i servizi, espressi in YAML.
- Descrittori delle immagini container, come Dockerfile e Containerfile.
- Codice sorgente dei carichi di lavoro.
Per semplificare il refactoring, ti consigliamo di concentrarti sull'applicazione del numero minimo di modifiche necessarie per rendere i tuoi carichi di lavoro adatti a GKE e sulle correzioni di bug critiche. Puoi pianificare altri miglioramenti modifiche nell'ambito di progetti futuri.
Esegui il refactoring del deployment e dei processi operativi
Dopo aver eseguito il refactoring dei carichi di lavoro, devi eseguire il refactoring del deployment e delle operazioni processi per:
- Esegui il provisioning e la configurazione delle risorse nel tuo ambiente Google Cloud instead of provisioning resources in your source environment.
- Crea e configura i carichi di lavoro ed esegui il loro deployment in Google Cloud instead of in the source environment.
Hai raccolto informazioni su questi processi durante la fase di valutazione nelle prime fasi di questo processo.
Il tipo di refactoring da considerare per queste procedure dipende da come le hai progettate e implementate. Il refactoring dipende anche da cosa lo stato finale di ogni processo. Ad esempio, prendi in considerazione quanto indicato di seguito:
- Probabilmente avete implementato questi processi nell'ambiente di origine e intendiamo progettare e implementare processi simili in Google Cloud. Ad esempio, puoi eseguire il refactoring di queste procedure per utilizzare Cloud Build, Cloud Deploy e Infrastructure Manager.
- Potresti aver implementato questi processi in un altro ambiente di terze parti esterno all'ambiente di origine. In questo caso, è necessario eseguire il refactoring per scegliere come target il tuo ambiente Google Cloud anziché l'ambiente di origine completamente gestito di Google Cloud.
- Una combinazione degli approcci precedenti.
Il refactoring del deployment e dei processi operativi può essere complesso e richiedere molto impegno. Se provi a eseguire queste attività nell'ambito della migrazione del carico di lavoro, la migrazione del carico di lavoro può diventare più complessa e può esporre a rischi. Dopo aver valutato i processi di implementazione e operativi, probabilmente hai compreso il loro design e la loro complessità. Se ritieni di dover impiegare molto impegno per eseguire il refactoring delle procedure di implementazione e operative, ti consigliamo di prendere in considerazione la possibilità di eseguire il refactoring di queste procedure nell'ambito di un progetto dedicato e separato.
Per saperne di più su come progettare e implementare processi di deployment su Google Cloud, consulta:
- Eseguire la migrazione a Google Cloud: esegui il deployment dei carichi di lavoro
- Esegui la migrazione a Google Cloud: migrazione dai deployment manuali a quelli containerizzati e automatici
Questo documento è incentrato sui processi di deployment che producono gli artefatti eseguire il deployment e implementarle nell'ambiente di runtime di destinazione. Il refactoring strategia dipende molto dalla complessità di questi processi. L'elenco seguente illustra una possibile strategia di refactoring generale:
- Eseguire il provisioning dei repository di artefatti su Google Cloud. Ad esempio, puoi usa Artifact Registry per archiviare artefatti e creare dipendenze.
- Esegui il refactoring delle procedure di compilazione per archiviare gli artefatti sia nell'ambiente di origine sia in Artifact Registry.
- Esegui il refactoring dei processi di deployment per eseguire il deployment dei carichi di lavoro nella tua destinazione nell'ambiente Google Cloud. Ad esempio, puoi iniziare a eseguire il deployment di un piccolo sottoinsieme dei tuoi carichi di lavoro in Google Cloud utilizzando gli elementi archiviati in Artifact Registry. Quindi, aumenti gradualmente il numero di carichi di lavoro di cui è stato eseguito il deployment in Google Cloud, finché non vengono eseguiti tutti i carichi di lavoro di cui eseguire la migrazione in Google Cloud.
- Esegui il refactoring delle procedure di compilazione per archiviare gli artefatti solo in Artifact Registry.
- Se necessario, esegui la migrazione delle versioni precedenti degli elementi da eseguire il deployment dai repository nell'ambiente di origine ad Artifact Registry. Ad esempio, puoi copiare le immagini container in Artifact Registry.
- Esegui la disattivazione dei repository nell'ambiente di origine quando non li necessiti più.
Per facilitare eventuali rollback a causa di problemi imprevisti durante la migrazione, puoi archiviare le immagini dei container sia nei tuoi repository di artefatti attuali in Google Cloud sia durante la migrazione a Google Cloud. Infine, nell'ambito del ritiro dell'ambiente di origine, puoi eseguire il refactoring dei processi di compilazione delle immagini container per archiviare gli elementi solo in Google Cloud.
Sebbene potrebbe non essere fondamentale per la riuscita di una migrazione, potresti dover eseguire la migrazione delle versioni precedenti degli elementi dall'ambiente di origine ai repository di elementi su Google Cloud. Ad esempio, per supportare eseguendo il rollback dei carichi di lavoro a momenti arbitrari, potrebbe essere necessario eseguire la migrazione delle versioni precedenti dei tuoi artefatti in Artifact Registry. Per ulteriori informazioni, vedi Eseguire la migrazione di immagini da un registro di terze parti.
Se utilizzi Artifact Registry per archiviare gli artefatti, ti consigliamo di configurare i controlli per proteggere l'artefatto come controllo dell'accesso, prevenzione dell'esfiltrazione di dati, analisi delle vulnerabilità e Autorizzazione binaria. Per ulteriori informazioni, vedi Controlla l'accesso e proteggi gli artefatti.
Migrazione dei dati
GKE supporta diversi servizi di archiviazione dati, come archiviazione a blocchi, archiviazione a blocchi non elaborati, archiviazione di file e archiviazione degli oggetti. Per maggiori informazioni le informazioni, vedi Panoramica di Storage per i cluster GKE.
Per eseguire la migrazione dei dati nel tuo ambiente GKE:
- Esegui il provisioning e configura tutta l'infrastruttura di archiviazione necessaria.
- Configura Provisioner di StorageClass, nei tuoi cluster GKE. Non tutti i provisioner StorageClass sono compatibili con tutti gli ambienti. Prima di eseguire il deployment di un provisioning StorageClass, ti consigliamo di valutarne la compatibilità con GKE e le relative dipendenze.
- Configura le classi di archiviazione.
- Configurare oggetti PersistentVolume e PersistentVolumeClaim per archiviare i dati eseguire la migrazione.
- Esegui la migrazione dei dati dal tuo ambiente di origine a questi PersistentVolume. La e le specifiche di questa migrazione dei dati dipenderanno dalle caratteristiche dell'origine completamente gestito di Google Cloud.
Per eseguire la migrazione dei dati dall'ambiente di origine a Google Cloud ti consigliamo di progettare un piano di migrazione dei dati seguendo le indicazioni Eseguire la migrazione a Google Cloud: trasferire set di dati di grandi dimensioni.
Eseguire la migrazione dei dati da EKS a GKE
AWS offre diverse opzioni di archiviazione dei dati per Amazon EKS. Questo documento è incentrato nei seguenti scenari di migrazione dei dati:
- Esegui la migrazione dei dati dai volumi Amazon EBS alle risorse GKE
PersistentVolume
. - Copia i dati dai volumi Amazon EBS in Amazon S3 o in Cloud Storage, quindi esegui la migrazione dei dati alle risorse GKE
PersistentVolume
.
Esegui la migrazione dei dati dai volumi Amazon EBS ai volumi permanenti GKE
Puoi eseguire la migrazione dei dati dai volumi Amazon EBS alle risorse GKEPersistentVolume
utilizzando uno dei seguenti approcci:
- Copia direttamente i dati dai volumi Amazon EBS su Compute Engine
dei dischi permanenti:
- Esegui il provisioning delle istanze Amazon EC2 e collega i volumi Amazon EBS che contengono i dati di cui eseguire la migrazione.
- Esegui il provisioning delle istanze Compute Engine con dischi permanenti vuoti con capacità sufficiente per archiviare i dati di cui eseguire la migrazione.
- Eseguire uno strumento di sincronizzazione dei dati, ad esempio rsync, per copiare i dati dai volumi Amazon EBS ai dischi permanenti di Compute Engine.
- Scollega i dischi permanenti dalle istanze di Compute Engine.
- Dismetti le istanze di Compute Engine.
- Configura i dischi permanenti come GKE
PersistentVolume
risorse.
- Esegui la migrazione delle istanze Amazon EC2 e dei volumi Amazon EBS a Compute Engine:
- Esegui il provisioning delle istanze Amazon EC2 e collega i volumi Amazon EBS che che contengono i dati di cui eseguire la migrazione.
- Esegui la migrazione delle istanze Amazon EC2 e dei volumi Amazon EBS in Compute Engine con Migrate for Virtual Machines.
- Scollega i dischi permanenti dalle istanze Compute Engine.
- Dismetti le istanze di Compute Engine.
- Configura i dischi permanenti come GKE
PersistentVolume
risorse.
Per ulteriori informazioni sulla migrazione delle istanze Amazon EC2 a Compute Engine, consulta Eseguire la migrazione da AWS a Google Cloud: migrare da Amazon EC2 a Compute Engine.
Per ulteriori informazioni sull'uso dei dischi permanenti di Compute Engine
Risorse GKE PersistentVolume
, consulta
Utilizzo di dischi permanenti preesistenti come volumi permanenti.
Copia i dati dai volumi Amazon EBS su un supporto intermedio e esegui la migrazione a PersistentVolume di GKE
Anziché eseguire la migrazione dai volumi Amazon EBS a GKE
PersistentVolume
risorse direttamente, puoi utilizzare media provvisori come
archivio di oggetti:
- Caricare i dati dai volumi Amazon EBS su un supporto provvisorio come un nel bucket Amazon S3 o in un bucket Cloud Storage.
- Scarica i dati dai contenuti multimediali provvisori sul tuo
Risorse
PersistentVolume
di GKE.
In alcuni scenari, l'utilizzo di più supporti può semplificare il trasferimento dei dati in base alle configurazioni di rete e sicurezza. Ad esempio, puoi caricare inizialmente i dati in un bucket S3, quindi copiarli dal bucket S3 in un bucket Cloud Storage e infine scaricarli nei volumi permanenti. Indipendentemente dall'approccio scelto, per garantire un'esperienza senza interruzioni transizione tenendo conto di importanti considerazioni, recensione Eseguire la migrazione da AWS a Google Cloud: eseguire la migrazione da Amazon S3 a Cloud Storage.
Scegliere un'opzione di migrazione
L'opzione di migrazione migliore per te dipende dalle tue esigenze e dai tuoi requisiti specifici, ad esempio le seguenti considerazioni:
- La quantità di dati di cui devi eseguire la migrazione.
- Se devi eseguire la migrazione di una piccola quantità di dati, ad esempio alcuni file di dati, valuta la possibilità di utilizzare strumenti come rsync per copiare i dati direttamente sui dischi permanenti di Compute Engine. Questa opzione è relativamente ma potrebbe non essere adatto per una grande quantità di dati.
- Se hai una grande quantità di dati da migrare, valuta la possibilità di utilizzare Esegui la migrazione a macchine virtuali per eseguire la migrazione dei dati a Compute Engine. Questa opzione offre complessa rispetto alla copia diretta dei dati, ma è più affidabile e scalabile.
- Il tipo di dati di cui devi eseguire la migrazione.
- La connettività di rete tra gli ambienti di origine e di destinazione.
- Se non riesci a stabilire una connettività di rete diretta tra le tue istanze AWS EC2 e Compute Engine, ti consigliamo di utilizzare Amazon S3 o Cloud Storage per archiviare temporaneamente i dati durante la migrazione a Compute Engine. Questa opzione potrebbe essere meno costosa perché non dovrai mantenere in esecuzione contemporaneamente le istanze EC2 e Compute Engine.
- La cronologia della migrazione.
- Se la larghezza di banda della rete è limitata o viene e la tua tempistica non è complicata, puoi anche prendere in considerazione l'utilizzo di Transfer Appliance per spostare i dati da AWS a Google Cloud.
Indipendentemente dall'opzione scelta, è importante testare la migrazione prima di pubblicarlo. I test ti aiuteranno a identificare potenziali risolvere i problemi e garantire la riuscita della migrazione.
Esegui il deployment dei carichi di lavoro
Quando le procedure di deployment sono pronte, esegui il deployment dei carichi di lavoro su GKE. Per ulteriori informazioni, vedi Panoramica del deployment dei carichi di lavoro.
Per preparare i carichi di lavoro per il deployment per GKE, ti consigliamo di di analizzare i descrittori Kubernetes, poiché alcune le risorse di cui GKE esegue automaticamente il provisioning configurabili tramite Kubernetes etichette e annotazioni, anziché dover eseguire manualmente il provisioning di queste risorse. Ad esempio, puoi eseguire il provisioning bilanciatore del carico interno anziché uno esterno, aggiungendo un'annotazione a un servizio LoadBalancer.
Convalida i carichi di lavoro
Dopo aver eseguito il deployment dei carichi di lavoro nel tuo ambiente GKE, ma prima di esporli agli utenti, ti consigliamo di eseguire verifiche e test approfonditi. Questi test possono aiutarti a verificare che i carichi di lavoro si comportino come previsto. Ad esempio, potresti:
- Esegui test di integrazione, test di carico, test di conformità, test di affidabilità e altre procedure di verifica che ti aiutano ad assicurarti che i carichi di lavoro funzionino entro i parametri previsti e in base alle specifiche.
- Esamina i log, le metriche e i report sugli errori in Google Cloud Observability per identificare eventuali potenziali problemi e individuare le tendenze per anticipare i problemi prima che si verifichino.
Per ulteriori informazioni sulla convalida dei carichi di lavoro, consulta Test di affidabilità.
Esporre i carichi di lavoro
Una volta completati i test di convalida dei carichi di lavoro in esecuzione nel tuo ambiente GKE, esponili per renderli raggiungibili.
Per esporre i carichi di lavoro in esecuzione nel tuo ambiente GKE, puoi utilizzare i servizi Kubernetes e un mesh di servizi.
Per ulteriori informazioni sull'esposizione dei carichi di lavoro in esecuzione su GKE, consulta:
Spostare il traffico nell'ambiente Google Cloud
Dopo aver verificato che i carichi di lavoro sono in esecuzione in GKE e, dopo averli esposti ai clienti, sposti il traffico dall'ambiente di origine all'ambiente GKE. Per aiutarti a evitare migrazioni su larga scala e tutti i rischi correlati, ti consigliamo di trasferire gradualmente il traffico dall'ambiente di origine a GKE.
A seconda di come hai progettato il tuo ambiente GKE, hai diverse opzioni per implementare un meccanismo di bilanciamento del carico che trasferisca gradualmente il traffico dall'ambiente di origine a quello di destinazione. Ad esempio: puoi implementare un criterio di risoluzione DNS che risolva i record DNS in base a un criterio per risolvere una determinata percentuale di richieste a IP gli indirizzi IP che appartengono al tuo ambiente GKE. In alternativa, puoi implementare un meccanismo di bilanciamento del carico che utilizza indirizzi IP virtuali e carico di rete bilanciatori del carico e bilanciatori del carico.
Dopo aver iniziato a spostare gradualmente il traffico nell'ambiente GKE, ti consigliamo di monitorare il comportamento dei carichi di lavoro man mano che aumentano.
Infine, esegui una cutover, che si verifica quando sposti tutto il traffico dall'ambiente di origine all'ambiente GKE.
Per ulteriori informazioni sul bilanciamento del carico, vedi Bilanciamento del carico nel frontend.
Eseguire il ritiro dell'ambiente di origine
Dopo che i carichi di lavoro nel tuo ambiente GKE gestiscono le richieste correttamente, dismetti l'ambiente di origine.
Prima di iniziare a ritirare le risorse nel tuo ambiente di origine, ti consigliamo di procedere nel seguente modo:
- Esegui il backup di tutti i dati per ripristinare le risorse nell'ambiente di origine.
- Invia una notifica agli utenti prima di ritirare l'ambiente.
Per ritirare l'ambiente di origine:
- Dismetti i carichi di lavoro in esecuzione nei cluster nell'origine completamente gestito di Google Cloud.
- Elimina i cluster nell'ambiente di origine.
- Elimina le risorse associate a questi cluster, ad esempio gruppi di sicurezza, bilanciatori del carico e reti virtuali.
Per evitare di lasciare risorse orfane, l'ordine di ritiro delle risorse nel tuo ambiente di origine è importante. Ad esempio, alcuni fornitori richiedono di ritirare i servizi Kubernetes che generano la creazione di bilanciatori del carico prima di poter ritirare le reti virtuali contenenti questi bilanciatori.
Ottimizza il tuo ambiente Google Cloud
L'ottimizzazione è l'ultima fase della migrazione. In questa fase, esegui l'iterazione delle attività di ottimizzazione finché l'ambiente di destinazione non soddisfa i requisiti di ottimizzazione. I passaggi di ogni iterazione sono i seguenti:
- Valuta il tuo ambiente, i tuoi team e il tuo ciclo di ottimizzazione attuale.
- Stabilisci i requisiti e gli obiettivi di ottimizzazione.
- Ottimizza il tuo ambiente e i tuoi team.
- Ottimizza il ciclo di ottimizzazione.
Ripeti la sequenza finché non hai raggiunto gli obiettivi di ottimizzazione.
Per saperne di più sull'ottimizzazione del tuo ambiente Google Cloud, consulta Eseguire la migrazione a Google Cloud: ottimizzare l'ambiente e Procedura di ottimizzazione del rendimento.
Le seguenti sezioni integrano le considerazioni in Migrate to Google Cloud: ottimizza il tuo ambiente.
Definisci i tuoi requisiti di ottimizzazione
I requisiti di ottimizzazione ti consentono di restringere l'ambito dell'attuale iterazione di ottimizzazione. Per saperne di più sui requisiti e sugli obiettivi di ottimizzazione, consulta Definire i requisiti e gli obiettivi di ottimizzazione.
per definire i requisiti di ottimizzazione per GKE dell'ambiente di lavoro, considera innanzitutto i seguenti aspetti:
- Sicurezza, privacy e conformità: ti aiutano a migliorare la security posture del tuo ambiente GKE.
- Affidabilità: consentono di migliorare disponibilità, scalabilità e resilienza del tuo ambiente GKE.
- Ottimizzazione dei costi: ti aiuta a ottimizzare il consumo di risorse e per il tuo ambiente GKE.
- Efficienza operativa: ti aiuta a gestire e utilizzare il tuo ambiente GKE in modo efficiente.
- Ottimizzazione delle prestazioni: ti aiuta a ottimizzare le prestazioni dei carichi di lavoro di cui è stato eseguito il deployment nel tuo ambiente GKE.
Sicurezza, privacy e conformità
- Monitora la strategia di sicurezza dei tuoi cluster GKE. Puoi Usa la dashboard della security posture per ricevere consigli utili e pratici, che ti aiuteranno a migliorare della strategia di sicurezza per l'ambiente GKE.
- Proteggi l'ambiente GKE. Scopri il modello di sicurezza GKE e come proteggere i tuoi cluster GKE.
- Implementa una catena di fornitura del software sicura. Per i carichi di lavoro critici per la sicurezza, puoi implementare una fornitura sicura di software con nei tuoi cluster GKE utilizzando Software Delivery Shield.
Affidabilità
- Migliora l'affidabilità dei cluster. Per aiutarti a progettare più resiliente a improbabili interruzioni a livello di zona, preferisca cluster regionali a livello di zona o multi-zona.
- Backup e ripristino dei carichi di lavoro. Configura il backup e il ripristino di un carico di lavoro un flusso di lavoro con Backup per GKE.
Ottimizzazione dei costi
Per ulteriori informazioni sull'ottimizzazione del costo dell'ambiente GKE, consulta:
- Ridimensiona i tuoi carichi di lavoro GKE su larga scala.
- Ridurre i costi facendo lo scale down dei cluster GKE al di fuori delle ore di punta.
- Identifica i cluster GKE inattivi.
Efficienza operativa
Per aiutarti a evitare problemi che interessano il tuo ambiente di produzione, ti consigliamo di:
- Progetta i tuoi cluster GKE in modo che siano fungibili. Se consideri i tuoi cluster come fungibili e ne automatizzi il provisioning e la configurazione, puoi semplificare e generalizzare le procedure operative per la loro gestione, nonché semplificare le migrazioni future e gli upgrade dei cluster GKE. Ad esempio, se devi eseguire l'upgrade di un cluster GKE fungibile a una nuova versione di GKE, puoi eseguire il provisioning e la configurazione automatici di un nuovo cluster di cui è stato eseguito l'upgrade, eseguire automaticamente il deployment dei carichi di lavoro nel nuovo cluster e ritirare il vecchio cluster GKE obsoleto.
- Monitora le metriche che ti interessano. Assicurati che tutte le metriche di interesse che i carichi di lavoro e i cluster vengano raccolti correttamente. Inoltre, verifica che tutti gli avvisi pertinenti che utilizzano queste metriche come input siano impostati e funzionino.
Per ulteriori informazioni sulla configurazione del monitoraggio, del logging e della profilazione in dell'ambiente GKE, consulta:
Ottimizzazione delle prestazioni
- Configura la scalabilità automatica del cluster e il provisioning automatico dei nodi. Ridimensiona automaticamente il tuo cluster GKE in base alla domanda utilizzando la scalabilità automatica del cluster e il provisioning automatico dei nodi.
- Scalabilità automatica dei carichi di lavoro. GKE supporta diversi
come:
- Scala automaticamente i carichi di lavoro in base alle metriche.
- Scala automaticamente i carichi di lavoro modificando la forma del numero di pod i tuoi carichi di lavoro Kubernetes Scalabilità automatica orizzontale dei pod.
- Scala automaticamente i carichi di lavoro regolando le richieste e i limiti delle risorse configurando la scalabilità automatica pod verticale.
Per saperne di più, consulta Informazioni sulla scalabilità di GKE.
Passaggi successivi
- Scopri di più su altri percorsi di migrazione da AWS a Google Cloud.
- Scopri come confrontare i servizi AWS e Azure con Google Cloud.
- Scopri quando consulta l'assistenza per le migrazioni.
- Per altre architetture di riferimento, diagrammi e best practice, visita il Centro architetture di Google Cloud.
Collaboratori
Autori:
- Marco Ferrari | Cloud Solutions Architect
- Xiang Shen | Solutions Architect