Migrieren zu Azure Kubernetes Service (AKS)
Zur Unterstützung beim Planen und Ausführen einer erfolgreichen Migration zu Azure Kubernetes Service (AKS) enthält dieser Leitfaden Details zur aktuellen empfohlenen AKS-Konfiguration. Dieser Artikel behandelt zwar nicht jedes Szenario, enthält aber Links zu detaillierteren Informationen für die Planung einer erfolgreichen Migration.
In diesem Artikel werden die Details zur Migration für folgende Szenarien zusammengefasst:
- Containerisieren von Anwendungen über Azure Migrate
- AKS mit Azure Load Balancer (Standard) und Virtual Machine Scale Sets
- Vorhandene angefügte Azure-Dienste
- Sicherstellen gültiger Kontingente
- Hohe Verfügbarkeit und Geschäftskontinuität
- Überlegungen zu zustandslosen Anwendungen
- Überlegungen zu zustandsbehafteten Anwendungen
- Bereitstellung Ihrer Clusterkonfiguration
Hinweis
Je nach Ihrem Szenario können die folgenden Open-Source-Tools bei der Migration hilfreich sein:
- Velero (erfordert Kubernetes 1.7+)
- Azure Kube CLI-Erweiterung
Voraussetzungen
- Stellen Sie sicher, dass sich Ihre Kubernetes-Zielversion im unterstützten Fenster für AKS befindet. Ältere Versionen liegen möglicherweise nicht innerhalb des unterstützten Bereichs und erfordern ein Versionsupgrade für AKS-Unterstützung. Weitere Informationen finden Sie unter Unterstützte Kubernetes-Versionen in Azure Kubernetes Service (AKS).
- Wenn Sie zu einer neueren Version von Kubernetes migrieren, überprüfen Sie die Richtlinie zur Unterstützung der Kubernetes-Version und Versionsabweichung.
Eine wichtige Vorgehensweise, die Sie im Rahmen Ihres Migrationsprozesses berücksichtigen sollten, ist das Befolgen allgemein verwendeter Bereitstellungs- und Testmuster. Das Testen Ihrer Anwendung vor der Bereitstellung ist ein wichtiger Schritt, um die Qualität, Funktionalität und Kompatibilität mit der Zielumgebung sicherzustellen. Es kann Ihnen helfen, Fehler oder Probleme zu identifizieren und zu beheben, die sich auf die Leistung, Sicherheit oder Nutzbarkeit der Anwendung oder der zugrunde liegenden Infrastruktur auswirken können.
Migrieren Ihrer Anwendungen zu AKS mit Azure Migrate
Azure Migrate bietet eine einheitliche Plattform, um lokale Server, Infrastrukturen, Anwendungen und Daten zu bewerten und zu Azure zu migrieren. In AKS können Sie Azure Migrate für folgende Aufgaben verwenden:
- Containerisieren von ASP.NET-Anwendungen und Migrieren zu AKS.
- Containerisieren von Java-Web-Anwendungen und Migrieren zu AKS.
AKS mit Load Balancer Standard und Virtual Machine Scale Sets
AKS ist ein verwalteter Dienst, der einzigartige Funktionen mit geringerem Verwaltungsaufwand bietet. Da AKS ein verwalteter Dienst ist, müssen Sie aus einer Reihe von AKS-unterstützten Regionen auswählen. Möglicherweise müssen Sie Ihre vorhandenen Anwendungen ändern, damit sie während des Übergangs vom vorhandenen Cluster zu AKS auf der von AKS verwalteten Steuerungsebene fehlerfrei bleiben.
Es wird empfohlen, AKS-Cluster zu verwenden, die auf Virtual Machine Scale Sets und Load Balancer (Standard) basieren, um sicherzustellen, dass Sie die folgenden Features nutzen können:
- Mehrere Knotenpools
- Verfügbarkeitszonen
- Autorisierte IP-Adressbereiche
- Automatische Clusterskalierung
- Azure Policy für die AKS
- Weitere neue Features folgen bei deren Veröffentlichung.
Von VM-Verfügbarkeitsgruppen unterstützten AKS-Clustern werden viele dieser Features nicht unterstützt.
Erstellen eines AKS-Clusters mit Load Balancer (Standard) und Virtual Machine Scale Sets
Im folgenden Beispiel wird ein AKS-Cluster mit einem einzigen Knotenpool erstellt, der von einer VM-Skalierungsgruppe unterstützt wird. Hierdurch wird die automatische Clusterskalierung im Knotenpool für den Cluster aktiviert und die Mindestanzahl von Knoten auf 1 sowie die maximale Knotenanzahl auf 3 festgelegt.
Erstellen Sie mit dem Befehl
az group create
eine Ressourcengruppe.az group create --name myResourceGroup --location eastus
Erstellen Sie mit dem Befehl
az aks create
einen AKS-Cluster.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
Vorhandene angefügte Azure-Dienste
Beim Migrieren von Clustern haben Sie möglicherweise externe Azure-Dienste angefügt. Die folgenden Dienste erfordern zwar keine Neuerstellung von Ressourcen, dennoch müssen die Verbindungen von den vorherigen auf die neuen Cluster aktualisiert werden, um die Funktionalität zu gewährleisten:
- Azure Container Registry
- Azure Log Analytics
- Azure Application Insights
- Azure Traffic Manager
- Azure Storage-Konto
- Externe Datenbanken
Sicherstellen gültiger Kontingente
Da während der Migration weitere VMs in Ihrem Abonnement bereitgestellt werden, sollten Sie überprüfen, ob Ihre Kontingente und Limits für diese Ressourcen ausreichen. Fordern Sie bei Bedarf eine Erhöhung des vCPU-Kontingents an.
Möglicherweise müssen Sie eine Erhöhung der Netzwerkkontingente anfordern, um sicherzustellen, dass Sie die IPs nicht erschöpfen. Weitere Informationen finden Sie unter Netzwerke und IP-Adressbereiche für AKS.
Weitere Informationen finden Sie unter Einschränkungen für Azure-Abonnements und Dienste, Kontingente und Einschränkungen. Um Ihre aktuellen Kontingente zu überprüfen, wechseln Sie im Azure-Portal zum Blatt „Abonnements“, und wählen Sie Ihr Abonnement und dann Nutzung + Kontingente aus.
Hohe Verfügbarkeit und Geschäftskontinuität
Wenn Ihre Anwendung keine Ausfallzeiten bewältigen kann, müssen Sie bewährte Methoden für Migrationsszenarien mit hoher Verfügbarkeit befolgen. Weitere Informationen finden Sie unter Best Practices für komplexe Geschäftskontinuitätsplanung, Notfallwiederherstellung und Maximierung der Betriebszeit in Azure Kubernetes Service (AKS).
Bei komplexen Anwendungen führen Sie die Migration in der Regel im Laufe der Zeit und nicht auf einmal aus. Dies bedeutet, dass die alte und neue Umgebung möglicherweise über das Netzwerk kommunizieren müssen. Anwendungen, in denen zuvor ClusterIP
-Dienste für die Kommunikation genutzt wurden, müssen möglicherweise als Typ LoadBalancer
verfügbar gemacht und in geeigneter Weise geschützt werden.
Um die Migration durchzuführen, müssen Clients auf die neuen Dienste verweisen, die in AKS ausgeführt werden. Es wird empfohlen, den Datenverkehr umzuleiten, indem Sie den DNS so aktualisieren, das auf den Lastenausgleich verwiesen wird, der vor Ihrem AKS-Cluster platziert ist.
Azure Traffic Manager kann Kundendatenverkehr an den gewünschten Kubernetes-Cluster und die gewünschte Anwendungsinstanz weiterleiten. Traffic Manager ist ein DNS-basierter Lastenausgleichsdienst, der Datenverkehr auf mehrere Regionen verteilen kann. Um optimale Leistungs- und Redundanzwerte zu erzielen, leiten Sie den gesamten Anwendungsdatenverkehr über Traffic Manager an Ihren AKS-Cluster.
In einer Bereitstellung mit mehreren Clustern sollten Kunden eine Verbindung mit dem DNS-Namen der Traffic Manager-Instanz herstellen, die auf die Dienste in den einzelnen AKS-Clustern verweist. Definieren Sie diese Dienste mithilfe von Traffic Manager-Endpunkten. Jeder Endpunkt stellt die IP-Adresse des Lastenausgleichsdiensts dar. Leiten Sie mit dieser Konfiguration Netzwerkdatenverkehr vom Traffic Manager-Endpunkt in einer Region zum Endpunkt in einer anderen Region.
Azure Front Door ist eine weitere Option für das Routing von Datenverkehr für AKS-Cluster. Über Azure Front Door können Sie das globale Routing für Ihren Webdatenverkehr definieren, verwalten und überwachen, indem Sie eine Optimierung auf die bestmögliche Leistung und ein schnelles globales Failover durchführen, um Hochverfügbarkeit sicherzustellen.
Überlegungen zu zustandslosen Anwendungen
Die zustandslose Anwendungsmigration umfasst die folgenden Schritte:
- Wenden Sie Ihre Ressourcendefinitionen (YAML oder Helm) auf den neuen Cluster an.
- Vergewissern Sie sich, dass alles wie erwartet funktioniert.
- Leiten Sie Datenverkehr um, damit der neue Cluster aktiviert wird.
Überlegungen zu zustandsbehafteten Anwendungen
Planen Sie die Migration von zustandsbehafteten Anwendungen sorgfältig, um Datenverlust oder eine unerwartete Downtime zu vermeiden.
- Wenn Sie Azure Files verwenden, können Sie die Dateifreigabe als Volume in den neuen Cluster einbinden. Weitere Informationen finden Sie unter Einbinden statischer Azure Files-Instanzen als Volume.
- Wenn Sie Azure Managed Disks verwenden, können Sie den Datenträger nur einbinden, wenn er nicht an eine VM angefügt ist. Weitere Informationen finden Sie unter Einbinden eines statischen Azure Datenträgers als Volume.
- Wenn keiner dieser Ansätze funktioniert, können Sie Sicherungs- und Wiederherstellungsoptionen verwenden. Weitere Informationen finden Sie unter Velero in Azure.
Azure Files
Im Gegensatz zu Datenträgern können Azure Files-Instanzen gleichzeitig auf mehreren Hosts bereitgestellt werden. In Azure und in Kubernetes ist es möglich, einen Pod in Ihrem AKS-Cluster zu erstellen, der weiterhin von Ihrem AKS-Cluster verwendet wird. Um Datenverlust und unerwartetes Verhalten zu vermeiden, müssen Sie sicherstellen, dass die Cluster nicht gleichzeitig in dieselben Dateien schreiben.
Wenn Ihre Anwendung mehrere Replikate hosten kann, die auf dieselbe Dateifreigabe verweisen, führen Sie die Schritte für die Migration zustandsloser Anwendungen aus, und stellen Sie Ihre YAML-Definitionen auf Ihrem neuen Cluster bereit.
Andernfalls umfasst ein möglicher Ansatz für die Migration die folgenden Schritte:
- Überprüfen Sie, ob Ihre Anwendung ordnungsgemäß funktioniert.
- Verweisen Sie Ihren Livedatenverkehr auf den neuen AKS-Cluster.
- Trennen Sie den alten Cluster.
Wenn Sie mit einer leeren Freigabe beginnen und eine Kopie der Quelldaten erstellen möchten, können Sie den Befehl az storage file copy
zum Migrieren Ihrer Daten verwenden.
Migration persistenter Volumes
Wenn Sie vorhandene persistente Volumes zu AKS migrieren, führen Sie im Allgemeinen folgende Schritte aus:
- Stilllegen von Schreibvorgängen in die Anwendung
- Dieser Schritt ist optional und erfordert eine Ausfallzeit.
- Erstellen von Momentaufnahmen der Datenträger
- Erstellen neuer verwalteter Datenträger aus den Momentaufnahmen
- Erstellen von persistenten Volumes in AKS
- Aktualisieren der Podspezifikationen zur Verwendung vorhandener Volumes anstelle von PersistentVolumeClaims (statische Bereitstellung)
- Stellen Sie Ihre Anwendung in AKS bereit.
- Überprüfen Sie, ob Ihre Anwendung ordnungsgemäß funktioniert.
- Verweisen Sie Ihren Livedatenverkehr auf den neuen AKS-Cluster.
Wichtig
Wenn Sie die Schreibvorgänge nicht stilllegen, müssen Sie Daten zur neuen Bereitstellung replizieren. Andernfalls fehlen die Daten, die nach dem Erstellen der Datenträgermomentaufnahmen geschrieben wurden.
Mit den folgenden Open-Source-Tools können Sie verwaltete Datenträger erstellen und Volumes zwischen Kubernetes-Clustern migrieren:
- Azure CLI Disk Copy-Erweiterung: Kopieren und Konvertieren von Datenträgern zwischen Ressourcengruppen und Azure-Regionen
- Azure Kube CLI-Erweiterung: Auflisten von ACS Kubernetes-Volumes und Migrieren der Volumes zu einem AKS-Cluster
Bereitstellung Ihrer Clusterkonfiguration
Es empfiehlt sich, Ihre vorhandene CI/CD-Pipeline (Continuous Integration und Continuous Deliver) zu verwenden, um eine als funktionierend bekannte Konfiguration in AKS bereitzustellen. Sie können Azure Pipelines verwenden, um Ihre Anwendungen für AKS zu erstellen und bereitzustellen. Klonen Sie Ihre vorhandenen Bereitstellungsaufgaben, und stellen Sie sicher, dass kubeconfig
auf den neuen AKS-Cluster verweist.
Wenn dies nicht möglich ist, exportieren Sie die Ressourcendefinitionen aus Ihrem vorhandenen Kubernetes-Cluster, und wenden Sie sie anschließend in AKS an. Sie können kubectl
zum Exportieren von Objekten verwenden. Zum Beispiel:
kubectl get deployment -o yaml > deployments.yaml
Überprüfen Sie unbedingt die Ausgabe, und entfernen Sie alle unnötigen Livedatenfelder.
Verschieben von vorhandenen Ressourcen in eine andere Region
Möglicherweise möchten Sie Ihren AKS-Cluster in eine andere von AKS unterstützte Region verschieben. Es wird empfohlen, einen neuen Cluster in der anderen Region zu erstellen und dann Ihre Ressourcen und Anwendungen im neuen Cluster bereitzustellen.
Wenn auf Ihrem AKS-Cluster Dienste ausgeführt werden, müssen Sie diese Dienste in der neuen Region auf dem Cluster installieren und konfigurieren.
In diesem Artikel wurden die Details zur Migration für folgende Szenarien zusammengefasst:
- Containerisieren von Anwendungen über Azure Migrate
- AKS mit Load Balancer (Standard) und Virtual Machine Scale Sets
- Vorhandene angefügte Azure-Dienste
- Sicherstellen gültiger Kontingente
- Hohe Verfügbarkeit und Geschäftskontinuität
- Überlegungen zu zustandslosen Anwendungen
- Überlegungen zu zustandsbehafteten Anwendungen
- Bereitstellen Ihrer Clusterkonfiguration
Azure Kubernetes Service