Dela via


Migrera från Amazon EKS till Azure Kubernetes Service (AKS)

Den här artikeln innehåller strategier för att migrera vanliga tillståndslösa och tillståndskänsliga arbetsbelastningar från Amazon EKS till Azure Kubernetes Service (AKS).

Att tänka på

Den faktiska distributionsprocessen för en verklig produktionsarbetsbelastning kan variera beroende på följande faktorer:

  • Distributionsstrategier: Valet mellan GitOps och traditionella Ci/CD-metoder (Kontinuerlig integrering/kontinuerlig distribution) i DevOps påverkar distributionsmetoden avsevärt. GitOps prioriterar deklarativ infrastruktur som hanteras via versionskontrollerade lagringsplatser, medan DevOps CI/CD fokuserar på automatiserade arbetsflöden för programleverans.

  • Distributionsartefakter: Valet av distributionsartefakter spelar en avgörande roll för att definiera distributionsstrukturen. YAML-filer, manifestfiler, Helm-diagram och Kustomize-konfigurationer representerar olika metoder för att ange och anpassa distributionsinställningar, var och en med sina styrkor och användningsfall.

  • Autentisering och auktorisering för arbetsbelastning: Beroende på konfigurationen kan autentiserings- och auktoriseringsmetoderna variera. Du kan använda AWS-roller (Amazon Web Services) Identity and Access Management (IAM), arbetsbelastningsidentitetsmekanismer eller anslutningssträng för åtkomstkontroll.

  • Övervakning: Implementering av övervakningslösningar är en viktig aspekt som kan omfatta olika verktyg och metoder för att säkerställa prestanda och hälsa för de distribuerade arbetsbelastningarna. Mer information om hur AKS-övervakning jämförs med EKS finns i Kubernetes-övervakning och loggning.

Innan du påbörjar migreringen bör du granska och överväga följande allmänna riktlinjer och resurser för bästa praxis:

  • Granska metodtipsen för klusteroperatorn och utvecklaren.
  • Definiera övervaknings - och aviseringsstrategin för att säkerställa att programmet fungerar som förväntat.
  • Definiera säkerhets- och efterlevnadskraven för programmet och AKS-miljön.
  • Definiera principer för åtkomstkontroll och hur de tillämpas. Identifiera eventuella efterlevnadsstandarder som måste följas.
  • Definiera planen för haveriberedskap och affärskontinuitet för AKS-miljön och programmet.
  • Definiera principer och procedurer för säkerhetskopiering och återställning. Identifiera mål för återställningstid (RTO) och mål för återställningspunkt (RPO).
  • Identifiera eventuella risker eller utmaningar som kan uppstå under distributionen.
  • Testa funktionen för att säkerställa att programmet fungerar som förväntat innan livetrafik omdirigeras till det nya AKS-klustret.

Överväganden för arbetsbelastningsmigrering

I det här avsnittet går vi igenom några saker du bör tänka på innan du migrerar dina arbetsbelastningar från Amazon EKS till AKS.

Förstå din befintliga Amazon EKS-miljö

Analysera den befintliga EKS-miljön för att förstå den aktuella arkitekturen, resurserna och konfigurationerna.

  • Granska EKS-konfiguration: Utvärdera EKS-klusterkonfiguration, till exempel nodtyper, antal noder, Kubernetes-version och supportprincip samt skalningskonfiguration.

    Kommentar

    MED EKS kan du skapa anpassade AMI-avbildningar för EKS-noder. AKS tillåter inte användning av anpassade nodbilder. Om distributionen kräver nodanpassning kan du använda kubelet-anpassning och/eller DaemonSets för att anpassa noderna.

  • Granska programarbetsbelastningar: Identifiera alla Kubernetes-arbetsbelastningar som körs i EKS-klustret, inklusive distributioner, tjänster, tillståndskänsliga uppsättningar, ingresskonfigurationer och beständiga volymanspråk. Se till att du har en fullständig lista över program och deras associerade resurser.

  • Kontrollera beroenden: Identifiera eventuella beroenden för AWS-tjänster som är specifika för EKS.

    AWS-tjänst Dependency
    AWS Secret Manager Azure Key Vault
    AWS Guard Duty Agent Microsoft Defender för containrar
    EKS Pod Identity Agent Arbetsbelastningsidentitet för Microsoft Entra-ID
    Drivrutiner för Amazon Elastic File System (EFS) eller Elastic Block Store (EBS) Container Storage Interface (CSI) AKS CSI-drivrutiner
  • Säkerhetskopiera EKS-kluster: Du kan använda ett icke-Microsoft-verktyg som Velero för att säkerhetskopiera och migrera Kubernetes-resurser och beständiga volymer.

Förbereda Azure AKS-miljön

Amazon Virtual Private Cloud (VPC) Container Networking Interface (CNI) är standardprogrammet för nätverk som stöds av EKS. Ett AKS-kluster stöder flera plugin-program och metoder för att distribuera ett kluster i ett virtuellt nätverk, inklusive:

Följ dessa steg för att förbereda AKS-klustret:

  1. Skapa ett nytt AKS-kluster i Azure och konfigurera önskade nätverksinställningar för att matcha dina krav.
  2. Granska dina Kubernetes-manifest och YAML-filer som används i EKS. Kontrollera om kubernetes API-versionen är inkompatibel eller specifika EKS-konfigurationer som AKS inte stöder.
  3. Kontrollera att din Docker-avbildning och containeravbildningsregisterplats är tillgängliga från AKS-klustret. Kontrollera nätverksanslutningen och eventuella nödvändiga autentiserings- och auktoriseringsinställningar för åtkomst till avbildningarna.

Genom att följa dessa steg kan du skapa ett AKS-kluster och säkerställa kompatibilitet för dina Kubernetes-manifest och Docker-avbildningar, vilket säkerställer en smidig migreringsprocess från EKS till AKS.

Migreringsöversikt

Migrering från Amazon EKS till AKS omfattar flera steg, till exempel:

  • Migrering av containeravbildningar: Migrering av containeravbildningar är ett viktigt steg när du flyttar från EKS till AKS. Du kan använda verktyg som kubectl, Docker eller containerregister för att exportera och importera avbildningar.

    1. Exportera bilder från EKS.
    2. Konfigurera ett Azure Container Registry och koppla det till AKS om du inte redan har gjort det.
    3. Skicka avbildningar till Container Registry.

    Containeravbildningar kan också importeras till Container Registry direkt från en offentlig eller privat lagringsplats som inte är azure. Mer information finns i Importera containeravbildningar.

  • Kubernetes-manifestmigrering: AKS använder Kubernetes YAML-filmanifestet för att definiera Kubernetes-objekt. Distributioner skapas och hanteras vanligtvis med kubectl create eller kubectl apply. Skapa en distribution genom att definiera en manifestfil i YAML-format. Mer information finns i det här AKS-exempelmanifestet. Du kan lära dig mer om hur YAML-filer fungerar på Kubernetes genom att läsa Distributioner och YAML-manifest.

  • Datamigrering: Planera noggrant migreringen av tillståndskänsliga program för att undvika dataförlust eller oväntad stilleståndstid. Mer information finns i avsnittet Överväganden för tillståndskänslig arbetsbelastningsmigrering.

Överväganden för tillståndslös arbetsbelastningsmigrering

Migrering av Kubernetes-manifest innebär att du anpassar konfigurationen så att den fungerar i Azure-miljön, inklusive följande steg:

  1. Uppdateringsmanifest: Uppdatera kubernetes-manifesten så att de nya avbildningsplatserna i Container Registry används. Ersätt avbildningsreferenserna i YAML-filerna med sökvägen containerregister.

    1. Granska dina befintliga Kubernetes-manifestfiler för AWS-specifika konfigurationer, till exempel VPC- och IAM-roller.
    2. Granska DE EKS IAM-roller som är associerade med noder, tjänstkonton och andra resurser. Mappa den med motsvarande rollbaserade RBAC-roller (Rollbaserad åtkomstkontroll i Azure AKS). Mer information finns i Kubernetes arbetsbelastningsidentitet och åtkomst.
    3. Ändra manifestfilerna för att ersätta AWS-specifika inställningar med Azure-specifika inställningar, till exempel anteckningar.
  2. Tillämpa manifest på AKS:

    1. Anslut till AKS-kluster.
    2. Använd de ändrade Kubernetes-manifestfilerna med .kubectl apply -f

Överväganden för tillståndskänslig arbetsbelastningsmigrering

Om dina program använder beständiga volymer (PV:er) eller beständiga volymanspråk (PVCs) för datalagring kontrollerar du att du säkerhetskopierar dessa data. Du kan använda verktyg som Velero för att utföra klustersäkerhetskopior, inklusive för datorer och PVCs-data. Mer information finns i Säkerhetskopiera och återställa dina Amazon EKS-klusterresurser med Velero.

Tillståndskänsliga program har vanligtvis beständiga datalagringskrav, vilket ökar komplexiteten i migreringsprocessen. En jämförelse av lagringsfunktionerna i Amazon EKS och AKS finns i Lagringsalternativ för ett Kubernetes-kluster.

Följ dessa steg för att säkerhetskopiera beständiga data:

  1. Konfigurera Velero i AKS - och EKS-kluster .
  2. Utför en säkerhetskopia av DITT EKS-kluster.
  3. Kopiera Velero-säkerhetskopieringen från S3-bucketen till Azure Blob Storage med hjälp av kommandot az copy.
  4. Eftersom AKS och EKS kan använda olika storageClassNames för beständiga volymanspråk skapar du en configMap som översätter källan storageClassNames till ett AKS-kompatibelt klassnamn. Du kan ignorera det här steget om du använder samma lagringslösning i EKS- och AKS Kubernetes-kluster.
  5. Återställ säkerhetskopian till AKS (med hjälp av kommandot För velero-återställning).
  6. Tillämpa nödvändiga ändringar på de återställde objekten, till exempel referenser till containeravbildningar i Amazon Elastic Container Registry (ECR) eller åtkomst till hemligheter.

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudsakliga författare:

  • Dixit Arora | Senior kundtekniker, ISV DN Coe
  • Ketan Chawda | Senior kundtekniker, ISV DN Coe

Övriga medarbetare:

Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.

Nästa steg