Condividi tramite


Eseguire la migrazione da Amazon EKS al servizio Azure Kubernetes

Questo articolo descrive le strategie per eseguire la migrazione di workload tipici senza stato e con stato da Amazon Elastic Kubernetes Service (EKS) ad Azure Kubernetes Service (AKS).

Considerazioni

Il processo di distribuzione di un carico di lavoro di produzione reale varia a seconda dei fattori seguenti:

  • Strategie di distribuzione: I metodi GitOps rispetto ai tradizionali metodi di integrazione continua e distribuzione continua (CI/CD) di DevOps influenzano l'approccio alla distribuzione. GitOps assegna priorità all'infrastruttura dichiarativa gestita tramite repository a controllo di versione. DevOps CI/CD è incentrato sui flussi di lavoro automatizzati per la distribuzione di applicazioni.

  • Artefatti di distribuzione: Gli artefatti della distribuzione consentono di definire la struttura di distribuzione. I file YAML, i file manifesto, i grafici Helm e le configurazioni Kustomize offrono diversi approcci per specificare e personalizzare le impostazioni di distribuzione. Ogni approccio ha punti di forza unici che traggono vantaggio da casi d'uso specifici.

  • Autenticazione e autorizzazione del carico di lavoro: A seconda del programma di installazione, i metodi di autenticazione e autorizzazione differiscono. È possibile usare i ruoli di Gestione delle identità e degli accessi (IAM) di Amazon Web Services (AWS), i meccanismi di identità del carico di lavoro o le stringhe di connessione per il controllo di accesso.

  • Monitoraggio: Quando si implementano soluzioni di monitoraggio, è possibile usare vari strumenti e metodologie per garantire le prestazioni e l'integrità dei carichi di lavoro distribuiti. Per ulteriori informazioni su come il monitoraggio di AKS e EKS si confrontano, vedere Monitoraggio e registrazione di Kubernetes.

Prima della migrazione, esaminare e prendere in considerazione le indicazioni generali e le risorse consigliate seguenti:

Considerazioni sulla migrazione del carico di lavoro

Considerare gli aspetti seguenti prima di eseguire la migrazione dei carichi di lavoro da Amazon EKS al servizio Azure Kubernetes.

Comprendi il tuo ambiente Amazon EKS esistente

Per analizzare l'ambiente EKS esistente per comprendere l'architettura, le risorse e le configurazioni correnti.

  • Esaminare la configurazione del servizio Azure Kubernetes: Valutare la configurazione del cluster EKS, ad esempio i tipi di nodo, il numero di nodi, la versione di Kubernetes e i criteri di supporto e la configurazione del ridimensionamento.

    Annotazioni

    Il servizio Azure Kubernetes consente la creazione di immagini AMI personalizzate per i nodi del servizio Azure Kubernetes. Il servizio Azure Kubernetes non consente l'uso di immagini di nodi personalizzate. Se la distribuzione richiede la personalizzazione dei nodi, è possibile applicare personalizzazioni kubelet e DaemonSet per personalizzare i nodi.

  • Esaminare i carichi di lavoro dell'applicazione: Identificare tutti i carichi di lavoro Kubernetes eseguiti nel cluster EKS, incluse distribuzioni, servizi, set con stato, configurazioni in ingresso e attestazioni di volume permanente. Creare un elenco completo di applicazioni e le relative risorse associate.

  • Controllare le dipendenze: Identificare eventuali dipendenze sui servizi AWS specifici per EKS.

    Servizio AWS Dipendenza
    AWS Secrets Manager Azure Key Vault
    Agente Amazon GuardDuty Microsoft Defender for Containers
    Agente di identità pod per EKS ID attività Microsoft Entra
    Driver Amazon Elastic File System (EFS) o Elastic Block Store (EBS) Container Storage Interface (CSI) Driver CSI di AKS
  • Eseguire il backup del cluster EKS: È possibile usare uno strumento non Microsoft come Velero per eseguire il backup e la migrazione delle risorse Kubernetes e dei volumi persistenti (PV).

Preparare l'ambiente di Azure AKS

Amazon Virtual Private Cloud (VPC) Container Networking Interface (CNI) è il plug-in di rete predefinito supportato da EKS. Un cluster del servizio Azure Kubernetes supporta i plug-in e i metodi di rete seguenti per distribuire un cluster in una rete virtuale:

Per preparare il cluster AKS, seguire questa procedura:

  1. Creare un nuovo cluster del servizio Azure Kubernetes in Azure. Configurare le impostazioni di rete desiderate in base ai requisiti.

  2. Esaminare i manifesti Kubernetes e i file YAML usati in EKS. Verificare la presenza di eventuali potenziali incompatibilità della versione dell'API Kubernetes o di configurazioni specifiche di EKS non supportate da AKS.

  3. Assicurarsi che le immagini Docker e il registro delle immagini del contenitore siano accessibili dal cluster AKS. Verificare la connettività di rete e le eventuali impostazioni di autenticazione e autorizzazione necessarie per l'accesso alle immagini.

Seguire questi passaggi per creare con successo un cluster AKS e assicurare la compatibilità per i manifesti Kubernetes e le immagini Docker. Una compatibilità adeguata aiuta a garantire un processo di migrazione uniforme da Amazon Elastic Kubernetes (EKS) ad Azure Kubernetes Service (AKS).

Panoramica della migrazione

Una migrazione da Amazon EKS al servizio Azure Kubernetes prevede i passaggi seguenti:

  • Migrazione dell'immagine del contenitore: Usare strumenti come kubectl, Docker o registri contenitori per esportare e importare immagini.

    1. Esportare immagini da EKS.
    2. Configurare un registro di contenitori di Azure e collegarlo ad AKS, se necessario.
    3. Caricare le immagini nel registro dei contenitori.

    È anche possibile importare immagini del contenitore in un registro contenitori direttamente da un repository pubblico o privato non-Azure. Per altre informazioni, vedere Importare immagini del contenitore.

  • Migrazione dei manifest Kubernetes: AKS utilizza il file manifesto YAML di Kubernetes per definire gli oggetti Kubernetes. Le distribuzioni vengono in genere create e gestite tramite kubectl create o kubectl apply. Per creare una distribuzione, definire un file manifesto in formato YAML. Per altre informazioni, vedere manifesto di esempio AKS.

  • Migrazione dei dati: Pianificare attentamente la migrazione di applicazioni con stato per evitare perdite di dati o tempi di inattività imprevisti.

Considerazioni sulla migrazione di carichi di lavoro senza stato

Quando si esegue la migrazione dei manifesti Kubernetes, è necessario adattare la configurazione per funzionare nell'ambiente Azure.

  1. Aggiornare i manifesti: Aggiornare i manifesti kubernetes per usare i nuovi percorsi delle immagini nel registro contenitori. Sostituire i riferimenti alle immagini nei file YAML con il percorso del registro contenitori.

    1. Esaminare i file manifesto di Kubernetes esistenti per configurazioni specifiche di AWS, ad esempio i ruoli VPC e IAM.

    2. Esaminare i ruoli IAM di EKS associati a nodi, account del servizio e altre risorse. Eseguire il mapping dei ruoli con ruoli di controllo degli accessi in base al ruolo (RBAC) del servizio Azure Kubernetes equivalenti. Per altre informazioni, vedere Identità e accesso del carico di lavoro Kubernetes.

    3. Modificare i file manifesto per sostituire le impostazioni specifiche di AWS con le impostazioni specifiche di Azure, ad esempio le annotazioni.

  2. Applicare manifesti al servizio Azure Kubernetes:

    1. Connetti al cluster AKS.

    2. Applicare i file manifesto di Kubernetes modificati utilizzando kubectl apply -f.

Considerazioni sulla migrazione del carico di lavoro a stato

Se le vostre applicazioni utilizzano PVs o PVCs per l'archiviazione dei dati, assicuratevi di eseguire il backup dei loro dati. Usare strumenti come Velero per eseguire backup del cluster, inclusi i dati PV e PVC. Per altre informazioni, vedere Eseguire il backup e il ripristino delle risorse del cluster Amazon EKS usando Velero.

Le applicazioni con stato hanno in genere requisiti di archiviazione dei dati persistenti, che aggiungono complessità al processo di migrazione. Per un confronto tra le funzionalità di archiviazione di Amazon EKS e servizio Azure Kubernetes, vedere Opzioni di archiviazione per un cluster Kubernetes.

Per eseguire il backup dei dati persistenti, seguire questa procedura:

  1. Configurare Velero nei cluster AKS e EKS.

  2. Eseguire un backup del cluster EKS.

  3. Copiare il backup di Velero da un bucket S3 in Azure Blob Storage usando il comando AzCopy.

  4. Se AKS ed EKS usano diversi storageClassNames per i PVC, crea un configMap che traduce l'origine storageClassNames in un nome di classe compatibile con AKS. Se si utilizza la stessa soluzione di archiviazione nei cluster Kubernetes EKS e AKS, ignorare questo passaggio.

  5. Ripristinare il backup su AKS usando il comando di ripristino Velero.

  6. Applicare le modifiche necessarie agli oggetti ripristinati, ad esempio i riferimenti alle immagini del contenitore in Amazon Elastic Container Registry o l'accesso ai segreti.

Contributori

Microsoft gestisce questo articolo. I collaboratori seguenti hanno scritto questo articolo.

Autori principali:

  • Dixit Arora | Senior Customer Engineer, ISV DN CoE
  • Ketan Chawda | Senior Customer Engineer, ISV DN CoE

Altri collaboratori:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi