Migrera till Azure Kubernetes Service (AKS)

Den här guiden hjälper dig att planera och genomföra en lyckad migrering till Azure Kubernetes Service (AKS) och innehåller information om den aktuella rekommenderade AKS-konfigurationen. Även om den här artikeln inte täcker alla scenarier innehåller den länkar till mer detaljerad information för att planera en lyckad migrering.

Det här dokumentet hjälper dig att stödja följande scenarier:

När du migrerar kontrollerar du att kubernetes-målversionen finns i fönstret som stöds för AKS. Äldre versioner kanske inte ligger inom det intervall som stöds och kräver att en versionsuppgradering stöds av AKS. Mer information finns i Kubernetes-versioner som stöds av AKS.

Om du migrerar till en nyare version av Kubernetes läser du Supportprincip för Kubernetes-version och versionsförskjutning.

Flera verktyg med öppen källkod kan hjälpa dig med migreringen, beroende på ditt scenario:

I den här artikeln sammanfattar vi migreringsinformationen för:

  • Containerisera program via Azure Migrate
  • AKS med Standard Load Balancer och Virtual Machine Scale Sets
  • Befintliga anslutna Azure-tjänster
  • Kontrollera giltiga kvoter
  • Hög tillgänglighet och affärskontinuitet
  • Överväganden för tillståndslösa program
  • Överväganden för tillståndskänsliga program
  • Distribution av klusterkonfigurationen

Använda Azure Migrate för att migrera dina program till AKS

Azure Migrate erbjuder en enhetlig plattform för att utvärdera och migrera till lokala Azure-servrar, infrastruktur, program och data. För AKS kan du använda Azure Migrate för följande uppgifter:

AKS med Standard Load Balancer och Virtual Machine Scale Sets

AKS är en hanterad tjänst som erbjuder unika funktioner med lägre hanteringskostnader. Eftersom AKS är en hanterad tjänst måste du välja från en uppsättning regioner som STÖDS av AKS. Du kan behöva ändra dina befintliga program för att hålla dem felfria på det AKS-hanterade kontrollplanet under övergången från ditt befintliga kluster till AKS.

Vi rekommenderar att du använder AKS-kluster som backas upp av Virtual Machine Scale Sets och Azure Standard Load Balancer för att säkerställa att du får funktioner som:

AKS-kluster som backas upp av vm-tillgänglighetsuppsättningar saknar stöd för många av dessa funktioner.

I följande exempel skapas ett AKS-kluster med en enda nodpool som backas upp av en VM-skalningsuppsättning. Klustret:

  • Använder en standardlastbalanserare.
  • Aktiverar autoskalning av kluster i nodpoolen för klustret.
  • Anger minst 1 och högst 3 noder.
# First create a resource group
az group create --name myResourceGroup --location eastus

# Now create the AKS cluster and enable the cluster autoscaler
az aks create \
  --resource-group myResourceGroup \
  --name myAKSCluster \
  --node-count 1 \
  --vm-set-type VirtualMachineScaleSets \
  --load-balancer-sku standard \
  --enable-cluster-autoscaler \
  --min-count 1 \
  --max-count 3

Befintliga anslutna Azure-tjänster

När du migrerar kluster kan du ha kopplat externa Azure-tjänster. Även om följande tjänster inte kräver resursskapande, kräver de uppdatering av anslutningar från tidigare till nya kluster för att upprätthålla funktionaliteten.

  • Azure Container Registry
  • Log Analytics
  • Application Insights
  • Traffic Manager
  • Lagringskonto
  • Externa databaser

Kontrollera giltiga kvoter

Eftersom andra virtuella datorer kommer att distribueras till din prenumeration under migreringen bör du kontrollera att dina kvoter och gränser är tillräckliga för dessa resurser. Om det behövs begär du en ökning av vCPU-kvoten.

Du kan behöva begära en ökning av nätverkskvoterna för att se till att du inte tar slut på IP-adresser. Mer information finns i nätverk och IP-intervall för AKS.

Mer information finns i Azure-prenumeration och tjänstbegränsningar. Om du vill kontrollera dina aktuella kvoter går du till bladet prenumerationer i Azure Portal, väljer din prenumeration och väljer sedan Användning + kvoter.

Hög tillgänglighet och affärskontinuitet

Om ditt program inte kan hantera driftstopp måste du följa metodtipsen för migrering med hög tillgänglighet. Läs mer om metodtips för komplex planering av affärskontinuitet, haveriberedskap och maximering av drifttid i Azure Kubernetes Service (AKS).

För komplexa program migrerar du vanligtvis över tid i stället för alla samtidigt, vilket innebär att de gamla och nya miljöerna kan behöva kommunicera över nätverket. Program som tidigare använde ClusterIP tjänster för att kommunicera kan behöva exponeras som typ LoadBalancer och skyddas på lämpligt sätt.

För att slutföra migreringen vill du peka klienter till de nya tjänster som körs på AKS. Vi rekommenderar att du omdirigerar trafik genom att uppdatera DNS så att den pekar på Load Balancer som sitter framför ditt AKS-kluster.

Azure Traffic Manager kan dirigera kunder till önskat Kubernetes-kluster och programinstans. Traffic Manager är en DNS-baserad lastbalanserare för trafik som kan distribuera nätverkstrafik mellan regioner. För bästa prestanda och redundans dirigerar du all programtrafik via Traffic Manager innan den går till ditt AKS-kluster.

I en distribution med flera kluster bör kunderna ansluta till ett Traffic Manager DNS-namn som pekar på tjänsterna i varje AKS-kluster. Definiera dessa tjänster med hjälp av Traffic Manager-slutpunkter. Varje slutpunkt är ip-adressen för tjänstlastbalanseraren. Använd den här konfigurationen för att dirigera nätverkstrafik från Traffic Manager-slutpunkten i en region till slutpunkten i en annan region.

AKS med Traffic Manager

Azure Front Door Service är ett annat alternativ för att dirigera trafik för AKS-kluster. Med Azure Front Door Service kan du definiera, hantera och övervaka den globala routningen för din webbtrafik genom att optimera för bästa prestanda och omedelbar global redundans för hög tillgänglighet.

Överväganden för tillståndslösa program

Tillståndslös programmigrering är det enklaste fallet:

  1. Tillämpa dina resursdefinitioner (YAML eller Helm) på det nya klustret.
  2. Se till att allt fungerar som förväntat.
  3. Omdirigera trafik för att aktivera det nya klustret.

Överväganden för tillståndskänsliga program

Planera noggrant migreringen av tillståndskänsliga program för att undvika dataförlust eller oväntade driftstopp.

Azure Files

Till skillnad från diskar kan Azure Files monteras på flera värdar samtidigt. Azure och Kubernetes hindrar dig inte från att skapa en podd som AKS-klustret fortfarande använder i ditt AKS-kluster. För att förhindra dataförlust och oväntat beteende kontrollerar du att klustren inte skriver till samma filer samtidigt.

Om ditt program kan vara värd för flera repliker som pekar på samma filresurs följer du de tillståndslösa migreringsstegen och distribuerar dina YAML-definitioner till det nya klustret.

Om inte innebär en möjlig migreringsmetod följande steg:

  1. Kontrollera att programmet fungerar korrekt.
  2. Peka din livetrafik till ditt nya AKS-kluster.
  3. Koppla från det gamla klustret.

Om du vill börja med en tom resurs och göra en kopia av källdata kan du använda kommandona az storage file copy för att migrera dina data.

Migrera beständiga volymer

Om du migrerar befintliga beständiga volymer till AKS följer du vanligtvis dessa steg:

  1. Quiesce skriver till programmet.
    • Det här steget är valfritt och kräver stilleståndstid.
  2. Ta ögonblicksbilder av diskarna.
  3. Skapa nya hanterade diskar från ögonblicksbilderna.
  4. Skapa beständiga volymer i AKS.
  5. Uppdatera poddspecifikationer för att använda befintliga volymer i stället för PersistentVolumeClaims (statisk etablering).
  6. Distribuera programmet till AKS.
  7. Kontrollera att programmet fungerar korrekt.
  8. Peka din livetrafik till ditt nya AKS-kluster.

Viktigt

Om du väljer att inte quiesce-skrivningar måste du replikera data till den nya distributionen. Annars missar du de data som skrevs när du tog diskögonblicksbilderna.

Vissa verktyg med öppen källkod kan hjälpa dig att skapa hanterade diskar och migrera volymer mellan Kubernetes-kluster:

Distribution av klusterkonfigurationen

Vi rekommenderar att du använder din befintliga pipeline för kontinuerlig integrering (CI) och kontinuerlig leverans (CD) för att distribuera en fungerande konfiguration till AKS. Du kan använda Azure Pipelines för att skapa och distribuera dina program till AKS. Klona dina befintliga distributionsuppgifter och se till att pekar på det kubeconfig nya AKS-klustret.

Om det inte är möjligt exporterar du resursdefinitioner från ditt befintliga Kubernetes-kluster och tillämpar dem sedan på AKS. Du kan använda kubectl för att exportera objekt. Ett exempel:

kubectl get deployment -o yaml > deployments.yaml

Se till att undersöka utdata och ta bort onödiga livedatafält.

Flytta befintliga resurser till en annan region

Du kanske vill flytta AKS-klustret till en annan region som stöds av AKS. Vi rekommenderar att du skapar ett nytt kluster i den andra regionen och sedan distribuerar dina resurser och program till det nya klustret.

Om du dessutom har några tjänster som körs i aks-klustret måste du installera och konfigurera tjänsterna i klustret i den nya regionen.

I den här artikeln sammanfattade vi migreringsinformation för:

  • AKS med Standard Load Balancer och Virtual Machine Scale Sets
  • Befintliga anslutna Azure-tjänster
  • Kontrollera giltiga kvoter
  • Hög tillgänglighet och affärskontinuitet
  • Överväganden för tillståndslösa program
  • Överväganden för tillståndskänsliga program
  • Distribution av klusterkonfigurationen