Migreren van Amazon EKS naar Azure Kubernetes Service (AKS)
Dit artikel bevat strategieën voor het migreren van typische staatloze en stateful workloads van Amazon EKS naar Azure Kubernetes Service (AKS).
Overwegingen
Het daadwerkelijke implementatieproces van een echte productieworkload kan variëren, afhankelijk van de volgende factoren:
Implementatiestrategieën: De keuze tussen GitOps en traditionele DevOps Continuous Integration/Continuous Deployment -methoden (CI/CD) is van invloed op de implementatiebenadering. GitOps geeft prioriteit aan declaratieve infrastructuur die wordt beheerd via versiebeheerde opslagplaatsen, terwijl DevOps CI/CD zich richt op geautomatiseerde werkstromen voor het leveren van toepassingen.
Implementatieartefacten: De selectie van implementatieartefacten speelt een cruciale rol bij het definiëren van de implementatiestructuur. YAML-bestanden, manifestbestanden, Helm-grafieken en Kustomize-configuraties vertegenwoordigen verschillende benaderingen voor het opgeven en aanpassen van implementatie-instellingen, elk met de sterke punten en gebruiksvoorbeelden.
Verificatie en autorisatie van workloads: afhankelijk van de installatie kunnen verificatie- en autorisatiemethoden verschillen. U kunt IAM-rollen (Amazon Web Services) Identity and Access Management (IAM) gebruiken, mechanismen voor workloadidentiteit of verbindingsreeks s voor toegangsbeheer.
Bewaking: Implementatie van bewakingsoplossingen is een essentieel aspect dat verschillende hulpprogramma's en methodologieën kan omvatten om de prestaties en status van de geïmplementeerde workloads te garanderen. Zie Kubernetes-bewaking en logboekregistratie voor meer informatie over hoe AKS-bewaking vergelijkt met EKS.
Bekijk voordat u begint met de migratie de volgende algemene richtlijnen en best practice-resources:
- Bekijk de best practices voor de clusteroperator en de ontwikkelaar.
- Definieer de bewakings- en waarschuwingsstrategie om ervoor te zorgen dat de toepassing werkt zoals verwacht.
- Definieer de beveiligings - en nalevingsvereisten voor de toepassing en de AKS-omgeving.
- Definieer het beleid voor toegangsbeheer en hoe ze worden afgedwongen. Identificeer alle nalevingsstandaarden waaraan moet worden voldaan.
- Definieer het plan voor herstel na noodgevallen en bedrijfscontinuïteit voor de AKS-omgeving en de toepassing.
- Definieer het back-up- en herstelbeleid en de procedures. Identificeer de beoogde hersteltijd (RTO) en het beoogde herstelpunt (RPO).
- Identificeer eventuele risico's of uitdagingen die kunnen optreden tijdens de implementatie.
- Test de functionaliteit om ervoor te zorgen dat de toepassing werkt zoals verwacht voordat u liveverkeer omleidt naar het nieuwe AKS-cluster.
Overwegingen voor workloadmigratie
In deze sectie worden enkele zaken besproken die u moet overwegen voordat u uw workloads van Amazon EKS naar AKS migreert.
Inzicht in uw bestaande Amazon EKS-omgeving
Analyseer de bestaande EKS-omgeving om inzicht te krijgen in de huidige architectuur, resources en configuraties.
Controleer de EKS-configuratie: EKS-clusterconfiguratie evalueren, zoals knooppunttypen, aantal knooppunten, Kubernetes-versie en ondersteuningsbeleid, en configuratie voor schalen.
Notitie
Met EKS kunt u aangepaste AMI-installatiekopieën maken voor EKS-knooppunten. AKS staat het gebruik van aangepaste knooppuntinstallatiekopieën niet toe. Als voor uw implementatie knooppuntaanpassing is vereist, kunt u kubelet-aanpassing en/of DaemonSets toepassen om uw knooppunten aan te passen.
Toepassingsworkloads controleren: identificeer alle Kubernetes-workloads die worden uitgevoerd op het EKS-cluster, inclusief implementaties, services, stateful sets, configuraties voor inkomend verkeer en permanente volumeclaims. Zorg ervoor dat u een volledige lijst met toepassingen en de bijbehorende resources hebt.
Controleer afhankelijkheden: identificeer eventuele afhankelijkheden van AWS-services die specifiek zijn voor EKS.
AWS-service Dependency AWS Secret Manager Azure Key Vault AWS Guard Duty Agent Microsoft Defender voor containers EKS Pod Identity Agent Microsoft Entra ID Workload Identity Stuurprogramma's voor Amazon Elastic File System (EFS) of Elastic Block Store (EBS) Container Storage Interface (CSI) AKS CSI-stuurprogramma's Back-up maken van EKS-cluster: u kunt een niet-Microsoft-hulpprogramma zoals Velero gebruiken om een back-up te maken van Kubernetes-resources en permanente volumes en deze te migreren.
De Azure AKS-omgeving voorbereiden
De Amazon Virtual Private Cloud (VPC) Container Networking Interface (CNI) is de standaardnetwerkinvoegtoepassing die wordt ondersteund door EKS. Een AKS-cluster ondersteunt meerdere netwerkinvoegtoepassingen en -methoden voor het implementeren van een cluster in een virtueel netwerk, waaronder:
- Kubenet-netwerken (standaard in AKS)
- Azure CNI-netwerken
- Azure CNI-overlay
- Azure CNI-netwerken voor dynamische toewijzing
- Azure CNI Powered by Cilium
- Niet-Microsoft-CN's
Voer de volgende stappen uit om uw AKS-cluster voor te bereiden:
- Maak een nieuw AKS-cluster in Azure en configureer de gewenste netwerkinstellingen om aan uw vereisten te voldoen.
- Controleer uw Kubernetes-manifesten en YAML-bestanden die worden gebruikt in EKS. Controleer op mogelijke incompatibiliteit van kubernetes-API-versies of specifieke EKS-configuraties die niet door AKS worden ondersteund.
- Zorg ervoor dat uw Docker-installatiekopieën en de registerlocatie voor containerinstallatiekopieën toegankelijk zijn vanuit het AKS-cluster. Controleer de netwerkverbinding en de vereiste verificatie- en autorisatie-instellingen voor toegang tot de installatiekopieën.
Door deze stappen te volgen, kunt u een AKS-cluster maken en compatibiliteit garanderen voor uw Kubernetes-manifesten en Docker-installatiekopieën, waardoor een soepel migratieproces van EKS naar AKS wordt gegarandeerd.
Migratieoverzicht
Migreren van Amazon EKS naar AKS omvat verschillende stappen, zoals:
Migratie van containerinstallatiekopieën: het migreren van containerinstallatiekopieën is een cruciale stap bij het verplaatsen van EKS naar AKS. U kunt hulpprogramma's zoals kubectl, Docker of containerregisters gebruiken om installatiekopieën te exporteren en te importeren.
- Afbeeldingen exporteren uit EKS.
- Stel een Azure Container Registry in en koppel deze aan AKS als u dat nog niet hebt gedaan.
- Push installatiekopieën naar Container Registry.
Containerinstallatiekopieën kunnen ook rechtstreeks vanuit een openbare of privéopslagplaats van Azure in Container Registry worden geïmporteerd. Zie Containerinstallatiekopieën importeren voor meer informatie.
Migratie van Kubernetes-manifest: AKS maakt gebruik van het Kubernetes YAML-bestandsmanifest om Kubernetes-objecten te definiëren. Implementaties worden doorgaans gemaakt en beheerd met kubectl create of kubectl apply. Maak een implementatie door een manifestbestand in de YAML-indeling te definiëren. Zie dit AKS-voorbeeldmanifest voor meer informatie. Meer informatie over de werking van YAML-bestanden in Kubernetes vindt u door implementaties en YAML-manifesten te bekijken.
Gegevensmigratie: plan zorgvuldig uw migratie van stateful toepassingen om gegevensverlies of onverwachte downtime te voorkomen. Zie de sectie Stateful workloadmigratieoverwegingen voor meer informatie.
Overwegingen voor stateless workloadmigratie
Het migreren van uw Kubernetes-manifesten omvat het aanpassen van de configuratie om te werken in de Azure-omgeving, waaronder de volgende stappen:
Manifesten bijwerken: werk uw Kubernetes-manifesten bij om de nieuwe installatiekopieën in Container Registry te gebruiken. Vervang de afbeeldingsverwijzingen in uw YAML-bestanden door het containerregisterpad.
- Controleer uw bestaande Kubernetes-manifestbestanden voor AWS-specifieke configuraties, zoals VPC- en IAM-rollen.
- Controleer de EKS IAM-rollen die zijn gekoppeld aan knooppunten, serviceaccounts en andere resources. Wijs deze toe met equivalente RBAC-rollen (Op rollen gebaseerd toegangsbeheer) van Azure AKS. Zie Kubernetes-workloadidentiteit en -toegang voor meer informatie.
- Wijzig de manifestbestanden om AWS-specifieke instellingen te vervangen door Azure-specifieke instellingen, zoals aantekeningen.
Manifesten toepassen op AKS:
- Verbinding maken met AKS-cluster.
- Pas de gewijzigde Kubernetes-manifestbestanden toe met behulp van
kubectl apply -f
.
Overwegingen voor stateful workloadmigratie
Als uw toepassingen permanente volumes (PV's) of persistente volumeclaims (PVC's) gebruiken voor gegevensopslag, moet u een back-up van deze gegevens maken. U kunt hulpprogramma's zoals Velero gebruiken om clusterback-ups uit te voeren, waaronder voor pc's en PVC-gegevens. Zie Back-up maken en herstellen van uw Amazon EKS-clusterresources met behulp van Velero voor meer informatie.
Stateful toepassingen hebben doorgaans permanente vereisten voor gegevensopslag, waardoor het migratieproces complexer wordt. Zie Opslagopties voor een Kubernetes-cluster voor een vergelijking van de opslagmogelijkheden van Amazon EKS en AKS.
Volg deze stappen om een back-up te maken van permanente gegevens:
- Velero instellen in AKS - en EKS-cluster .
- Voer een back-up van uw EKS-cluster uit.
- Kopieer de Velero-back-up van S3-bucket naar Azure Blob Storage met behulp van de opdracht az copy.
- Omdat AKS en EKS mogelijk anders
storageClassNames
kunnen worden gebruikt voor de permanente volumeclaims, maakt u eenconfigMap
naam waarmee de bronstorageClassNames
wordt omgezet in een klassenaam die compatibel is met AKS. U kunt deze stap negeren als u dezelfde opslagoplossing op de EKS en de AKS Kubernetes-clusters gebruikt. - Herstel de back-up naar AKS (met behulp van de opdracht Velero restore).
- Pas de benodigde wijzigingen toe op de herstelde objecten, zoals verwijzingen naar containerinstallatiekopieën in Amazon Elastic Container Registry (ECR) of toegang tot geheimen.
Medewerkers
Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.
Belangrijkste auteurs:
- Dixit Arora | Senior Customer Engineer, ISV DN CoE
- Ketan Chawda | Senior Customer Engineer, ISV DN CoE
Andere Inzenders:
- Paulo Salvatori | Principal Customer Engineer, ISV & DN CoE
- Anthony Nevico | Principal Cloud Solution Architect
- Francis Simy Azure | Senior Technisch Specialist
Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.
Volgende stappen
- Migratiehandleiding - Azure-voorbeelden
- AKS voor Amazon EKS-professionals
- Kubernetes-identiteits- en toegangsbeheer
- Kubernetes-bewaking en logboekregistratie
- Netwerktoegang tot Kubernetes beveiligen
- Opslagopties voor een Kubernetes-cluster
- Kostenbeheer voor Kubernetes
- Beheer van Kubernetes-knooppunten en -knooppuntgroepen
- Clusterbeheer