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.

Dieses Dokument unterstützt die folgenden Szenarien:

Stellen Sie bei der Migration 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, um von AKS unterstützt zu werden. 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.

Abhängig von Ihrem Szenario können verschiedene Open-Source-Tools bei der Migration verwendet werden:

In diesem Artikel werden 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
  • Bereitstellung Ihrer Clusterkonfiguration

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:

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 Regionen auswählen, die von AKS unterstützt werden. 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.

Wir empfehlen die Verwendung von AKS-Clustern, die durch Virtual Machine Scale Sets und den Azure Load Balancer Standard unterstützt werden, um sicherzustellen, dass Sie Features wie die folgenden erhalten:

Von Verfügbarkeitsgruppen für virtuelle Computer unterstützten AKS-Clustern werden viele dieser Features nicht unterstützt.

Im folgenden Beispiel wird ein AKS-Cluster mit einem einzigen Knotenpool erstellt, der von einer VM-Skalierungsgruppe unterstützt wird. Für den Cluster gilt Folgendes:

  • Verwendet eine Load Balancer Standard-Instanz.
  • Aktiviert die automatische Clusterskalieren im Knotenpool für den Cluster.
  • Legt die Mindestanzahl von Knoten auf 1 und die maximale Anzahl auf 3 fest.
# 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

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, doch müssen die Verbindungen von den vorherigen auf neue Cluster aktualisiert werden, um Funktionalität zu gewährleisten.

  • Azure Container Registry
  • Log Analytics
  • Application Insights
  • Traffic Manager
  • Speicherkonto
  • Externe Datenbanken

Sicherstellen gültiger Kontingente

Da während der Migration weitere VMs in Ihrem Abonnement bereitgestellt werden, müssen 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 zeigen, die in AKS ausgeführt werden. Es wird empfohlen, den Datenverkehr umzuleiten, indem Sie den DNS so aktualisieren, das auf den Load Balancer 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.

AKS mit Traffic Manager

Azure Front Door Service ist eine weitere Option für das Routing von Datenverkehr für AKS-Cluster. Über Azure Front Door Service 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 die Hochverfügbarkeit sicherzustellen.

Überlegungen zu zustandslosen Anwendungen

Die Migration von zustandslosen Anwendung ist der einfachste Fall:

  1. Wenden Sie Ihre Ressourcendefinitionen (YAML oder Helm) auf den neuen Cluster an.
  2. Vergewissern Sie sich, dass alles wie erwartet funktioniert.
  3. 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.

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:

  1. Überprüfen Sie, ob Ihre Anwendung ordnungsgemäß funktioniert.
  2. Verweisen Sie Ihren Livedatenverkehr auf den neuen AKS-Cluster.
  3. Trennen Sie den alten Cluster.

Wenn Sie mit einer leeren Freigabe beginnen und eine Kopie der Quelldaten erstellen möchten, können Sie die az storage file copy-Befehle zum Migrieren Ihrer Daten verwenden.

Migration persistenter Volumes

Wenn Sie vorhandene persistente Volumes zu AKS migrieren, führen Sie im Allgemeinen folgende Schritte aus:

  1. Stilllegen von Schreibvorgängen in die Anwendung
    • Dieser Schritt ist optional und erfordert eine Ausfallzeit.
  2. Erstellen von Momentaufnahmen der Datenträger
  3. Erstellen neuer verwalteter Datenträger aus den Momentaufnahmen
  4. Erstellen von persistenten Volumes in AKS
  5. Aktualisieren der Podspezifikationen zur Verwendung vorhandener Volumes anstelle von PersistentVolumeClaims (statische Bereitstellung)
  6. Stellen Sie Ihre Anwendung in AKS bereit.
  7. Überprüfen Sie, ob Ihre Anwendung ordnungsgemäß funktioniert.
  8. 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 einigen Open-Source-Tools können Sie verwaltete Datenträger erstellen und Volumes zwischen Kubernetes-Clustern migrieren:

Bereitstellung Ihrer Clusterkonfiguration

Es empfiehlt sich, die Verwendung Ihrer vorhandenen CI/CD-Pipeline (Continuous Integration und Continuous Deliver), um eine als funktionierend bekannten 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 zeigt.

Wenn dies nicht möglich ist, exportieren Sie die Ressourcendefinitionen aus Ihrem vorhandenen Kubernetes-Cluster, und wenden Sie sie anschließend auf 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 außerdem auf Ihrem AKS-Cluster Dienste ausgeführt werden, müssen Sie sie in der neuen Region auf dem Cluster installieren und konfigurieren.

In diesem Artikel wurden die Details zur Migration für folgende Szenarien zusammengefasst:

  • 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
  • Bereitstellung Ihrer Clusterkonfiguration