Migreren naar Azure Kubernetes Service (AKS)
Om u te helpen bij het plannen en uitvoeren van een geslaagde migratie naar Azure Kubernetes Service (AKS), vindt u in deze handleiding informatie over de huidige aanbevolen AKS-configuratie. Hoewel dit artikel niet over elk scenario gaat, bevat het koppelingen naar gedetailleerdere informatie voor het plannen van een geslaagde migratie.
In dit artikel vindt u een overzicht van de migratiedetails voor:
- Toepassingen containeriseren via Azure Migrate
- AKS met Azure Load Balancer (Standard) en virtuele-machineschaalsets
- Bestaande gekoppelde Azure-services
- Geldige quota garanderen
- Hoge beschikbaarheid en bedrijfscontinuïteit
- Overwegingen voor stateless toepassingen
- Overwegingen voor stateful toepassingen
- Implementatie van de clusterconfiguratie
Notitie
Afhankelijk van uw scenario kunnen de volgende opensource-hulpprogramma's u helpen bij uw migratie:
- Velero (Vereist Kubernetes 1.7+)
- Azure Kube CLI-extensie
Voordat u begint
- Zorg ervoor dat uw doelversie van Kubernetes zich in het ondersteunde venster voor AKS bevindt. Oudere versies bevinden zich mogelijk niet binnen het ondersteunde bereik en vereisen een versie-upgrade voor AKS-ondersteuning. Zie AKS-ondersteunde Kubernetes-versies voor meer informatie.
- Als u migreert naar een nieuwere versie van Kubernetes, controleert u het ondersteuningsbeleid voor Kubernetes-versie en -versie.
Een belangrijke procedure die u moet opnemen als onderdeel van uw migratieproces, is het onthouden van het volgen van veelgebruikte implementatie- en testpatronen. Het testen van uw toepassing vóór de implementatie is een belangrijke stap om de kwaliteit, functionaliteit en compatibiliteit met de doelomgeving te garanderen. Het kan u helpen bij het identificeren en oplossen van eventuele fouten, bugs of problemen die van invloed kunnen zijn op de prestaties, beveiliging of bruikbaarheid van de toepassing of onderliggende infrastructuur.
Azure Migrate gebruiken om uw toepassingen te migreren naar AKS
Azure Migrate biedt een geïntegreerd platform voor het evalueren en migreren naar on-premises Azure-servers, infrastructuur, toepassingen en gegevens. Voor AKS kunt u Azure Migrate gebruiken voor de volgende taken:
- Containeriseren ASP.NET toepassingen en migreren naar AKS.
- Java-webtoepassingen in containers plaatsen en migreren naar AKS.
AKS met Standard Load Balancer en virtuele-machineschaalsets
AKS is een beheerde service die unieke mogelijkheden biedt met lagere beheeroverhead. Omdat AKS een beheerde service is, moet u een keuze maken uit een set AKS-ondersteunde regio's. Mogelijk moet u uw bestaande toepassingen wijzigen om ze in orde te houden op het door AKS beheerde besturingsvlak tijdens de overgang van uw bestaande cluster naar AKS.
We raden u aan AKS-clusters te gebruiken die worden ondersteund door Virtual Machine Scale Sets en Load Balancer (Standard) om ervoor te zorgen dat u de volgende functies krijgt:
- Meerdere knooppuntgroepen,
- Beschikbaarheidszones,
- Geautoriseerde IP-bereiken,
- Automatische schaalaanpassing van clusters,
- Azure Policy voor AKS en
- Andere nieuwe functies naarmate ze worden uitgebracht.
Beschikbaarheidssets van AKS-clusters die worden ondersteund door beschikbaarheidssets van virtuele machines (VM's ) hebben geen ondersteuning voor veel van deze functies.
Een AKS-cluster maken met Load Balancer (Standard) en Virtuele-machineschaalsets
In het volgende voorbeeld wordt een AKS-cluster gemaakt met één knooppuntgroep die wordt ondersteund door een virtuele-machineschaalset. Hiermee kan de automatische schaalaanpassing van clusters in de knooppuntgroep voor het cluster worden ingeschakeld en wordt minimaal één en maximaal drie knooppunten ingesteld.
Maak een resourcegroep met behulp van de
az group create
opdracht.az group create --name myResourceGroup --location eastus
Maak een AKS-cluster met behulp van de
az aks create
opdracht.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 \ --generate-ssh-keys
Bestaande gekoppelde Azure-services
Bij het migreren van clusters hebt u mogelijk externe Azure-services gekoppeld. Hoewel voor de volgende services geen resourcerecreatie is vereist, moeten verbindingen van vorige naar nieuwe clusters worden bijgewerkt om de functionaliteit te behouden:
- Azure Container Registry
- Azure Log Analytics
- Azure Application Insights
- Azure Traffic Manager
- Azure Storage-account
- Externe databases
Geldige quota garanderen
Omdat andere VM's tijdens de migratie in uw abonnement worden geïmplementeerd, moet u controleren of uw quota en limieten voldoende zijn voor deze resources. Vraag indien nodig een verhoging van het vCPU-quotum aan.
Mogelijk moet u een verhoging aanvragen voor netwerkquota om ervoor te zorgen dat u geen IP-adressen opgeeft. Zie netwerken en IP-bereiken voor AKS voor meer informatie.
Zie Azure-abonnements- en servicelimieten voor meer informatie. Als u uw huidige quota wilt controleren, gaat u in Azure Portal naar de blade Abonnementen, selecteert u uw abonnement en selecteert u Vervolgens Gebruik en quota.
Hoge beschikbaarheid en bedrijfscontinuïteit
Als uw toepassing geen downtime kan verwerken, moet u de aanbevolen procedures voor migratiescenario's met hoge beschikbaarheid volgen. Lees meer over best practices voor complexe planning voor bedrijfscontinuïteit, herstel na noodgevallen en het maximaliseren van de uptime in Azure Kubernetes Service (AKS).
Voor complexe toepassingen migreert u doorgaans in de loop van de tijd in plaats van alles tegelijk, wat betekent dat de oude en nieuwe omgevingen mogelijk via het netwerk moeten communiceren. Toepassingen die eerder gebruikmaken van ClusterIP
services om te communiceren, moeten mogelijk beschikbaar worden gemaakt als type LoadBalancer
en op de juiste manier worden beveiligd.
Als u de migratie wilt voltooien, wilt u clients verwijzen naar de nieuwe services die worden uitgevoerd op AKS. U wordt aangeraden verkeer om te leiden door DNS bij te werken zodat deze verwijst naar de load balancer die zich voor uw AKS-cluster bevindt.
Azure Traffic Manager kan klanten omleiden naar het gewenste Kubernetes-cluster en toepassingsexemplaren. Traffic Manager is een op DNS gebaseerde load balancer voor verkeer dat netwerkverkeer over regio's kan verdelen. Voor de beste prestaties en redundantie stuurt u al het toepassingsverkeer via Traffic Manager voordat u naar uw AKS-cluster gaat.
In een implementatie met meerdere clusters moeten klanten verbinding maken met een Traffic Manager DNS-naam die verwijst naar de services op elk AKS-cluster. Definieer deze services met behulp van Traffic Manager-eindpunten. Elk eindpunt is het IP-adres van de service load balancer. Gebruik deze configuratie om netwerkverkeer van het Traffic Manager-eindpunt in één regio naar het eindpunt in een andere regio te leiden.
Azure Front Door is een andere optie voor het routeren van verkeer voor AKS-clusters. Met Azure Front Door kunt u de globale routering voor uw webverkeer definiëren, beheren en bewaken door te optimaliseren voor de beste prestaties en directe wereldwijde failover voor hoge beschikbaarheid.
Overwegingen voor stateless toepassingen
Migratie van stateless toepassingen omvat de volgende stappen:
- Pas uw resourcedefinities (YAML of Helm) toe op het nieuwe cluster.
- Zorg ervoor dat alles werkt zoals verwacht.
- Verkeer omleiden om uw nieuwe cluster te activeren.
Overwegingen voor stateful toepassingen
Plan uw migratie van stateful toepassingen zorgvuldig om gegevensverlies of onverwachte downtime te voorkomen.
- Als u Azure Files gebruikt, kunt u de bestandsshare als volume koppelen aan het nieuwe cluster. Zie Statische Azure Files koppelen als een volume.
- Als u Azure Managed Disks gebruikt, kunt u de schijf alleen koppelen als deze niet is gekoppeld aan een virtuele machine. Zie Statische Azure Disk koppelen als volume.
- Als geen van deze benaderingen werkt, kunt u een back-up- en herstelopties gebruiken. Zie Velero in Azure.
Azure Files
In tegenstelling tot schijven kan Azure Files gelijktijdig worden gekoppeld aan meerdere hosts. In uw AKS-cluster verhinderen Azure en Kubernetes niet dat u een pod maakt die uw AKS-cluster nog steeds gebruikt. Als u gegevensverlies en onverwacht gedrag wilt voorkomen, moet u ervoor zorgen dat de clusters niet tegelijkertijd naar dezelfde bestanden schrijven.
Als uw toepassing meerdere replica's kan hosten die naar dezelfde bestandsshare verwijzen, volgt u de stateless migratiestappen en implementeert u uw YAML-definities in uw nieuwe cluster.
Als dat niet het probleem is, bestaat een mogelijke migratiebenadering uit de volgende stappen:
- Controleer of uw toepassing correct werkt.
- Wijs uw liveverkeer naar uw nieuwe AKS-cluster.
- Verbreek de verbinding met het oude cluster.
Als u wilt beginnen met een lege share en een kopie van de brongegevens wilt maken, kunt u de az storage file copy
opdracht gebruiken om uw gegevens te migreren.
Permanente volumes migreren
Als u bestaande permanente volumes naar AKS migreert, voert u doorgaans de volgende stappen uit:
- Schrijfbewerkingen naar de toepassing.
- Deze stap is optioneel en vereist downtime.
- Maak momentopnamen van de schijven.
- Nieuwe beheerde schijven maken op basis van de momentopnamen.
- Maak permanente volumes in AKS.
- Werk podspecificaties bij om bestaande volumes te gebruiken in plaats van PersistentVolumeClaims (statische inrichting).
- Implementeer uw toepassing in AKS.
- Controleer of uw toepassing correct werkt.
- Wijs uw liveverkeer naar uw nieuwe AKS-cluster.
Belangrijk
Als u ervoor kiest geen schrijfbewerkingen op te instellen, moet u gegevens repliceren naar de nieuwe implementatie. Anders mist u de gegevens die zijn geschreven nadat u de momentopnamen van de schijf hebt gemaakt.
Met de volgende opensource-hulpprogramma's kunt u beheerde schijven maken en volumes migreren tussen Kubernetes-clusters:
- Azure CLI Disk Copy-extensie kopieert en converteert schijven tussen resourcegroepen en Azure-regio's.
- Met de Azure Kube CLI-extensie worden ACS Kubernetes-volumes opgesomd en gemigreerd naar een AKS-cluster.
Implementatie van de clusterconfiguratie
U wordt aangeraden uw bestaande pijplijn voor continue integratie en continue levering te gebruiken om een bekende goede configuratie te implementeren in AKS. U kunt Azure Pipelines gebruiken om uw toepassingen te bouwen en te implementeren in AKS. Kloon uw bestaande implementatietaken en zorg ervoor dat kubeconfig
verwijst naar het nieuwe AKS-cluster.
Als dat niet mogelijk is, exporteert u resourcedefinities uit uw bestaande Kubernetes-cluster en past u deze vervolgens toe op AKS. U kunt objecten kubectl
exporteren. Voorbeeld:
kubectl get deployment -o yaml > deployments.yaml
Controleer de uitvoer en verwijder overbodige live gegevensvelden.
Bestaande resources verplaatsen naar een andere regio
Mogelijk wilt u uw AKS-cluster verplaatsen naar een andere regio die wordt ondersteund door AKS. U wordt aangeraden een nieuw cluster in de andere regio te maken en vervolgens uw resources en toepassingen in uw nieuwe cluster te implementeren.
Als er services worden uitgevoerd op uw AKS-cluster, moet u deze services installeren en configureren in uw cluster in de nieuwe regio.
In dit artikel hebben we de migratiedetails samengevat voor:
- Toepassingen containeriseren via Azure Migrate
- AKS met Load Balancer (Standard) en virtuele-machineschaalsets
- Bestaande gekoppelde Azure-services
- Geldige quota garanderen
- Hoge beschikbaarheid en bedrijfscontinuïteit
- Overwegingen voor stateless toepassingen
- Overwegingen voor stateful toepassingen
- Uw clusterconfiguratie implementeren
Azure Kubernetes Service