Migrazione delle VM nei container con Migrate to Containers

Last reviewed 2021-10-21 UTC

Questo documento è rivolto ai Cloud Architect responsabili della progettazione e dell'implementazione di un piano di migrazione per i carichi di lavoro basati su macchine virtuali nei container. Fornisce indicazioni sull'utilizzo di Migrate to Containers per eseguire la migrazione delle macchine virtuali (VM) dal tuo ambiente di origine ai container in esecuzione in Google Kubernetes Engine (GKE) o GKE Enterprise. L'ambiente di origine potrebbe essere in esecuzione in un ambiente on-premise, in un ambiente di hosting privato o in un altro cloud.

Questo documento fornisce una panoramica di Migrate to Containers. Contiene inoltre punti importanti da considerare quando pianifichi la migrazione di una VM ai container. Fa parte di una serie in più parti sulla migrazione a Google Cloud. Se ti interessa una panoramica della serie, consulta Migrazione a Google Cloud: scelta del percorso di migrazione.

Leggi questo documento se prevedi di eseguire la migrazione di VM che eseguono un sistema operativo compatibile (OS), come Linux o Windows, da un ambiente di origine supportato a un ambiente GKE o GKE Enterprise con Migrate to Containers. Questi ambienti di origine possono includere quanto segue:

Migrate to Containers ti consente di inserire carichi di lavoro basati su VM esistenti in container GKE e GKE Enterprise, senza:

  • Richiesta di accesso al codice sorgente
  • Riscrittura dei carichi di lavoro
  • Containerizzazione manuale dei carichi di lavoro

La migrazione dei carichi di lavoro basati su VM con Migrate to Containers offre i seguenti vantaggi:

  • Un ambiente containerizzato, che comprende:
  • Densità elevata del carico di lavoro
  • Meccanismi di orchestrazione avanzati e gestione dei criteri
  • Canali di comunicazione tra servizi flessibili
  • Può utilizzare pipeline di integrazione continua e deployment continuo
  • Può eseguire lo spostamento da versioni del sistema operativo non supportate
  • Può iniziare a ritirare il tuo ambiente basato su VM

La migrazione di carichi di lavoro basati su VM a container con Migrate to Containers è uno dei possibili passaggi del percorso di modernizzazione dei carichi di lavoro. La migrazione dei carichi di lavoro basati su VM con Migrate to Containers ti aiuta a evitare le costose riscritture necessarie per modernizzare questi carichi di lavoro. Tuttavia, non li trasforma in carichi di lavoro progettati per l'esecuzione in un ambiente cloud.

I candidati ideali per la migrazione includono quanto segue:

  • Carichi di lavoro in cui la modernizzazione tramite una riscrittura completa è impossibile o troppo costosa
  • Carichi di lavoro con dipendenze sconosciute che potrebbero interrompere qualcosa se interessato
  • Carichi di lavoro gestiti, ma non sviluppati attivamente
  • Carichi di lavoro che non vengono più gestiti
  • Carichi di lavoro senza accesso al codice sorgente

Puoi interagire con Migrate to Containers in diversi modi. Ad esempio, è accessibile tramite la console Google Cloud. Se hai bisogno di automatizzare il processo di migrazione e integrarlo con la tua Toolchain esistente, puoi utilizzare l'interfaccia a riga di comando e Migrate to Containers Kubernetes Custom Resource Definitions (CRD).

Per ulteriori informazioni sulle interfacce di Migrate to Containers, consulta API e riferimenti | Migrate to Containers.

Questo documento presuppone che tu abbia letto e abbia familiarità con i seguenti documenti:

Progettazione della migrazione a Google Cloud

Per eseguire la migrazione delle VM dal tuo ambiente di origine ai container in esecuzione su Google Cloud, ti consigliamo di seguire il framework descritto nella serie Migrazione a Google Cloud.

Il seguente diagramma illustra il percorso del tuo percorso di migrazione:

Percorso di migrazione con quattro fasi.

Il framework illustrato nel diagramma precedente è composto da quattro fasi:

  1. Valuta. In questa fase, valuti l'ambiente di origine, i carichi di lavoro di cui vuoi eseguire la migrazione a Google Cloud e quali VM supportano ciascun carico di lavoro.
  2. Pianifica. In questa fase creerai l'infrastruttura di base per Migrate to Containers, ad esempio eseguendo il provisioning della gerarchia delle risorse e configurando l'accesso alla rete.
  3. Esegui il deployment. In questa fase, esegui la migrazione delle VM dall'ambiente di origine a GKE o GKE Enterprise con Migrate to Containers.
  4. Ottimizzazione. In questa fase, inizierai a sfruttare le tecnologie e le funzionalità del cloud.

Valutazione dell'ambiente di origine e dei carichi di lavoro

Nella fase di valutazione, raccogli informazioni sull'ambiente di origine e sui carichi di lavoro basati su VM di cui vuoi eseguire la migrazione. Questo ti aiuta a ridimensionare correttamente le risorse di cui hai bisogno, sia per la migrazione che per l'ambiente di destinazione.

Nella fase di valutazione:

  1. Crea un inventario completo dei tuoi carichi di lavoro.
  2. Cataloga le tue applicazioni in base alle loro proprietà e dipendenze.
  3. Addestra e forma i tuoi team su Google Cloud.
  4. Crea un esperimento e una proof of concept su Google Cloud.
  5. Calcola il costo totale di proprietà (TCO) dell'ambiente di destinazione.
  6. Scegli per primi i carichi di lavoro di cui vuoi eseguire la migrazione.

Le seguenti sezioni si basano sulle informazioni contenute in Migrazione a Google Cloud: valutazione e rilevamento dei carichi di lavoro. Tuttavia, forniscono informazioni specifiche per la valutazione dei carichi di lavoro basati su VM di cui vuoi eseguire la migrazione nei container con Migrate to Containers.

Crea i tuoi inventari

Per definire l'ambito della migrazione, devi comprendere il tuo attuale ambiente basato su VM. Per comprendere il tuo ambiente, raccogli informazioni sui tuoi carichi di lavoro e sulle loro dipendenze.

Creazione di un inventario delle app descrive come creare un inventario dei carichi di lavoro nel tuo ambiente basato su VM e delle loro dipendenze. Segui queste indicazioni e crea le tue inventorie prima di procedere con questo documento.

Dopo aver creato un inventario dei carichi di lavoro e delle loro dipendenze, puoi perfezionarlo. Valuta gli aspetti e le funzionalità di interesse per la tua organizzazione quando esegue la migrazione dei carichi di lavoro basati su VM con Migrate to Containers.

Per completare l'inventario dei tuoi carichi di lavoro, considera quanto segue:

  • Ambiente di origine: Migrate to Containers supporta la migrazione di VM da ambienti di origine diversi:

    • Compute Engine
    • VMware vSphere
    • VM di Microsoft Azure
    • Amazon EC2

    Per configurare correttamente Migrate to Containers in modo che possa eseguire la migrazione dei carichi di lavoro, devi valutare l'ambiente di origine.

  • Sistema operativo in esecuzione nelle VM: raccogli informazioni sui sistemi operativi e sulle relative licenze in esecuzione nelle tue VM e assicurati che i sistemi operativi siano compatibili con Migrate to Containers. Se esegui un sistema operativo non supportato da Migrate to Containers, valuta la possibilità di eseguire l'upgrade a una versione supportata o di passare dal sistema operativo a un sistema operativo supportato da Migrate to Containers.

  • Carichi di lavoro nelle VM: valuta di quali carichi di lavoro viene eseguito il deployment in ciascuna VM. Quindi mappa le dipendenze tra i carichi di lavoro e tra i carichi di lavoro e i servizi esterni. Quindi, raccogli informazioni sulle origini di configurazione dei carichi di lavoro. Ad esempio, utilizzi variabili di ambiente, un sistema di configurazione distribuito o server di metadati per configurare dinamicamente i carichi di lavoro? Inoltre, valuta il modo in cui i carichi di lavoro inviano informazioni al sistema di logging.

  • Punteggio di idoneità di Migrate to Containers: valuta se i tuoi carichi di lavoro sono idonei per la migrazione con Migrate to Containers. Migrate to Containers fornisce uno strumento di valutazione di idoneità per Linux e Windows che puoi eseguire sulle tue VM per calcolare un punteggio di idoneità. Un punteggio di idoneità basso indica che ci sono problemi da risolvere prima di eseguire la migrazione dei carichi di lavoro. Ad esempio, se hai abilitato Linux con sicurezza avanzata sulle tue VM, potrebbe essere necessario un ulteriore impegno per mitigare questa dipendenza prima di eseguirne la migrazione.

  • Servizi di rete: raccolgono informazioni sulla configurazione dei servizi di rete e sul modo in cui i carichi di lavoro basati su VM utilizzano questi servizi. Ad esempio, valuta in che modo i carichi di lavoro utilizzano il DNS (Domain Name System), il DNS multicast, i file host e altri meccanismi di rilevamento dei servizi per determinare la località di altri carichi di lavoro e servizi. Quindi, valuta il file hosts di ogni VM per qualsiasi voce personalizzata necessaria ai tuoi carichi di lavoro. Per saperne di più sui file host, consulta Verificare e convalidare le risorse e i descrittori generati.

  • Dipendenze hardware: valuta qualsiasi tipo di hardware che utilizzi nell'ambiente basato su VM, ad esempio dispositivi di archiviazione ad alte prestazioni, GPU, TPU o appliance di rete.

  • Carichi di lavoro stateless e stateful: i carichi di lavoro stateless non archiviano lo stato nel cluster o nell'archiviazione permanente. I carichi di lavoro stateful salvano i dati per utilizzarli in seguito. Poiché la migrazione dei carichi di lavoro stateful è in genere più difficile rispetto alla migrazione di carichi di lavoro stateless, valuta quali carichi di lavoro sono stateless e quali sono stateful.

  • Archiviazione: per i carichi di lavoro stateful, fai un elenco dei requisiti di archiviazione. Di seguito sono riportati alcuni aspetti da considerare per la creazione di un elenco:

    • Tipo di sistema di archiviazione (volumi a blocchi, archiviazione di file o archiviazione di oggetti)
    • Dimensioni del sistema di archiviazione
    • Accesso dei carichi di lavoro al sistema di archiviazione

      • Ad esempio, i tuoi carichi di lavoro utilizzano Network File System (NFS) o Server Message Block (SMB) per accedere ai file su una rete?
      • Ad esempio, le tue VM eseguono server NFS o SMB?

        Se le tue VM eseguono server NFS in modalità kernel, la migrazione di questi server dovrà aumentare. Puoi eseguire la migrazione di questi server in un altro ambiente di runtime, come Compute Engine o GKE. In alternativa, puoi eseguire la migrazione dei dati su Filestore, un servizio di archiviazione collegato in rete completamente gestito.

    • Configurazione disco:

      • Valuta la configurazione di tutti i dischi, le partizioni dei dati e i volumi nelle tue VM, nonché le funzionalità di sicurezza e riservatezza di ciascuno.
  • Località dei dati: la località dei dati influisce sulle prestazioni dei carichi di lavoro stateful. La distanza e la connettività tra i sistemi esterni e il tuo ambiente influiscono sulla latenza. Per ciascun sistema di archiviazione dati esterno, considera gli eventuali requisiti di prestazioni e disponibilità che deve soddisfare.

Completa il test

Dopo aver creato gli inventari relativi al tuo ambiente e ai tuoi carichi di lavoro basati su VM, completa le altre attività della fase di valutazione documentate in Migrazione a Google Cloud: valutazione e rilevamento dei carichi di lavoro. Una volta terminato, continua a leggere questo documento.

Pianificare e costruire le basi

Nella fase di pianificazione e creazione, esegui il provisioning e la configurazione dell'infrastruttura cloud e dei servizi che supportano i tuoi carichi di lavoro su Google Cloud:

  1. Creare una gerarchia di risorse.
  2. Configurare Identity and Access Management.
  3. Configura la fatturazione.
  4. Configura la connettività di rete.
  5. Rafforza la tua sicurezza.
  6. Configura il monitoraggio e gli avvisi.

Per indicazioni su come creare l'infrastruttura cloud e i servizi che supportano i tuoi carichi di lavoro e le loro dipendenze, consulta Migrazione a Google Cloud: creare le basi. Segui queste linee guida per gettare le basi per i tuoi ambienti. Al termine, continua a leggere questo documento.

Dopo aver seguito le indicazioni riportate in "Migrazione a Google Cloud: creazione delle basi", completa il lavoro di base configurando Migrate to Containers:

  1. Verifica che i carichi di lavoro e l'ambiente di origine soddisfino i prerequisiti per la migrazione ai container.
  2. Abilita Migrate to Containers Cloud APIs.
  3. Esegui il provisioning degli account di servizio utilizzati da Migrate to Containers per accedere alle risorse nell'ambiente di destinazione.
  4. Se stai eseguendo la migrazione dei carichi di lavoro a cluster GKE o GKE su Google Cloud, configura Esegui la migrazione a macchine virtuali.
  5. Configura un cluster di elaborazione Migrate to Containers. Un cluster di elaborazione Migrate to Containers esegue Migrate to Containers durante la migrazione.
  6. Installa e configura Migrate to Containers nel cluster di elaborazione.

L'articolo "Configurazione di Migrate to Containers" citato in precedenza descrive come eseguire il provisioning e configurare Migrate to Containers e le sue dipendenze. Segui queste indicazioni per configurare Migrate to Containers.

Una volta completato il lavoro descritto in questa sezione, torna a questo documento.

Migrazione dei carichi di lavoro basati su VM in container

Nella fase di deployment, utilizza le seguenti tappe come guida per la migrazione delle VM dall'ambiente di origine ai container in esecuzione in GKE o GKE Enterprise:

  1. Genera ed esamina i piani di migrazione.
  2. Genera artefatti dei container e descrittori di deployment.
  3. Verifica, convalida e personalizza i descrittori delle risorse generati per te dalla Migrate to Containers.
  4. Esegui il deployment e la convalida dei carichi di lavoro containerizzati su GKE o GKE Enterprise.
  5. Disinstalla Migrate to Containers.

Per ulteriori informazioni sui passaggi necessari per eseguire la migrazione delle VM con Migrate to Containers, consulta Eseguire una migrazione.

Genera e rivedi il piano di migrazione

Crea un piano di migrazione Migrate to Containers per i tuoi carichi di lavoro basati su VM:

  1. Configura gli ambienti di origine come origini della migrazione Migrate to Containers. Per eseguire la migrazione dei carichi di lavoro basati su VM, Migrate to Containers ha bisogno di informazioni sugli ambienti di origine in cui vengono attualmente eseguite le VM. Hai raccolto queste informazioni eseguendo le attività descritte nella sezione Creare inventari all'interno di questo documento. Per ulteriori informazioni sulla configurazione degli ambienti di origine, consulta Aggiunta di un'origine della migrazione (Linux) e Aggiunta di un'origine della migrazione (Windows).
  2. Crea piani di migrazione. Per specificare i carichi di lavoro basati su VM di cui vuoi eseguire la migrazione da un ambiente di origine a un ambiente di destinazione supportato, crea un piano di migrazione. Ad esempio, puoi configurare la posizione in cui archiviare i dati permanenti. Per ulteriori informazioni sulla creazione e sul monitoraggio dei piani di migrazione, consulta Creazione di una migrazione (Linux) e Creazione di una migrazione (Windows).
  3. Rivedi e personalizza i piani di migrazione. Dopo aver generato i piani di migrazione per ciascuno dei carichi di lavoro basati su VM di cui vuoi eseguire la migrazione, ti consigliamo di rivedere e personalizzare ogni piano di migrazione per assicurarti che sia adatto alle tue esigenze. Per ulteriori informazioni sulla personalizzazione dei piani di migrazione, consulta Personalizzazione di un piano di migrazione (Linux) e Personalizzazione di un piano di migrazione (Windows).

Una volta completato il lavoro descritto in questa sezione, torna a questo documento.

Genera artefatti dei container e descrittori di deployment

Per generare gli artefatti dei container di destinazione per i carichi di lavoro, Migrate to Containers crea un'immagine container contenente il carico di lavoro e i dati estratti dalla VM nel piano di migrazione. Quindi archivia una copia dell'immagine container nel repository di immagini container configurato. Inoltre, Migrate to Containers genera i descrittori di deployment che puoi personalizzare e utilizzare per eseguire il deployment delle istanze delle immagini container nell'ambiente di destinazione.

Per saperne di più sulla generazione di artefatti dei container, consulta Esecuzione di una migrazione (Linux) ed Esecuzione di una migrazione (Windows).

Puoi monitorare l'avanzamento degli artefatti dei container che crei e migri. Per ulteriori informazioni sul monitoraggio di una migrazione, consulta gli articoli Monitorare una migrazione (Linux) e Monitorare una migrazione (Windows).

Se generi artefatti dei container per carichi di lavoro Windows, utilizza gli artefatti e i descrittori di deployment generati da Migrate to Containers per creare immagini dei container Windows per questi carichi di lavoro. Per saperne di più sulla creazione di immagini container Windows per i tuoi carichi di lavoro, consulta Creazione di un'immagine container Windows.

Una volta completato il lavoro descritto in questa sezione, torna a questo documento.

Verifica e convalida le risorse e i descrittori generati

Dopo aver generato gli artefatti dei container e i descrittori di deployment con Migrate to Containers, rivedi e aggiorna questi artefatti e descrittori per assicurarti che soddisfino i tuoi requisiti. Il tempo necessario per aggiornare gli artefatti dei container e i descrittori di deployment dipende dal numero di carichi di lavoro basati su VM di cui esegui la migrazione e dalla loro complessità. Per ulteriori informazioni sulla revisione degli artefatti dei container e dei descrittori di deployment, consulta Revisione dei file di deployment generati (Linux) e Creazione di un'immagine container Windows. Ad esempio, considera i seguenti aspetti.

Denominazione di risorse e descrittori

Risorse e descrittori di configurazione e di log

Risorse e descrittori relativi a criteri e profili

Altre risorse e descrittori

Una volta completato il lavoro descritto in questa sezione, torna a questo documento.

Esegui il deployment e la convalida dei carichi di lavoro containerizzati

Quando i descrittori di deployment per i tuoi carichi di lavoro sono pronti, esegui questi passaggi:

  1. Esegui il deployment dei carichi di lavoro di cui è stata eseguita la migrazione nell'ambiente di destinazione. Per linee guida sul deployment dei carichi di lavoro Linux e Windows di cui è stata eseguita la migrazione, consulta Deployment di un carico di lavoro Linux in un cluster di destinazione e Deployment di un carico di lavoro Windows in un cluster di destinazione.
  2. Monitora i carichi di lavoro migrati. Dopo aver eseguito il deployment dei carichi di lavoro Linux e dei carichi di lavoro Windows migrati, puoi raccogliere informazioni sulle loro prestazioni. Per saperne di più, consulta Monitoraggio dei carichi di lavoro migrati (Linux) e Monitorare i carichi di lavoro migrati (Windows).

  3. Integra i carichi di lavoro migrati. Una volta che i carichi di lavoro di cui hai eseguito il deployment nell'ambiente di destinazione funzionano, integrali. Integra i processi di generazione e deployment degli artefatti dei container dei carichi di lavoro con le pipeline e i processi di deployment. Se al momento non disponi di un processo di deployment automatizzato e esegui il deployment manualmente dei tuoi carichi di lavoro, ti consigliamo di eseguire la migrazione dai deployment manuali ai deployment automatici.

Una volta completato il lavoro descritto in questa sezione, torna a questo documento.

Disinstalla Migrate to Containers

Dopo aver completato la migrazione dei carichi di lavoro con Migrate to Containers, ti consigliamo di:

  1. Assicurati di avere tutti i riferimenti agli artefatti che vengono generati Migrate to Containers durante la migrazione.
  2. Disinstalla Migrate to Containers.

Una volta completato il lavoro descritto in questa sezione, torna a questo documento.

Ottimizzazione dell'ambiente dopo la migrazione

L'ottimizzazione dell'ambiente è l'ultima fase della migrazione. Per ottimizzare l'ambiente GKE e GKE Enterprise, consulta Ottimizzazione dell'ambiente.

Passaggi successivi