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 Standardlastenausgleich 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:

Voraussetzungen

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:

AKS mit Standardlastenausgleich 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.

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 die folgenden Features erhalten:

AKS-Cluster, die durch Verfügbarkeitsgruppen für virtuelle Computer unterstützt werden, bieten keine Unterstützung für viele dieser Funktionen.

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.

  1. Erstellen Sie mit dem Befehl az group create eine Ressourcengruppe.

    az group create --name myResourceGroup --location eastus
    
  2. 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
    

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, 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.

AKS with 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 zustandslose Anwendungsmigration umfasst die folgenden Schritte:

  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 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:

  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 den folgenden Open-Source-Tools können Sie verwaltete Datenträger erstellen und Volumes zwischen Kubernetes-Clustern migrieren:

Bereitstellung Ihrer Clusterkonfiguration

Es empfiehlt sich, Ihre vorhandene CI/CD-Pipeline (Continuous Integration und Continuous Deliver) zu verwenden, 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 verweist.

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 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 Standardlastenausgleich 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