Freigeben über


Verschieben eines Azure Kubernetes Service-Clusters (AKS) in eine andere Region

In diesem Artikel finden Sie Anleitungen zum Verschieben eines Azure Kubernetes Service-Clusters in eine andere Region.

Es gibt verschiedene Gründe, warum Sie vielleicht Ihre vorhandenen Azure-Ressourcen aus einer Region in eine andere verschieben möchten. Möglicherweise möchten Sie Folgendes ausführen:

  • Nutzen Sie die Vorteile einer neuen Azure-Region.
  • Stellen Sie Features oder Dienste bereit, die nur in bestimmten Regionen verfügbar sind.
  • Erfüllen Sie interne Richtlinien- und Governanceanforderungen.
  • Ausrichtung an Unternehmenszusammenschlüssen und -übernahmen
  • Erfüllen Sie Kapazitätsplanungsanforderungen.

Hinweis

Kunden mit kurzen Releasezyklen nutzen häufig CI/CD-Pipelines. In diesen Fällen können Sie die Build- und Releasepipeline ändern, anstatt die AKS-Cluster in der Zielregion erneut bereitzustellen.

Voraussetzungen

Bevor Sie mit der Planung der Verschiebung beginnen, überprüfen Sie zunächst die folgenden Voraussetzungen:

  • Stellen Sie sicher, dass die Zielregion über genügend Kapazität (VM-SKUs) verfügt, um die neuen Clusterknoten aufzunehmen.

  • Überprüfen Sie, ob Sie über Berechtigungen zum Erstellen von Ressourcen für das Zielabonnement verfügen. Überprüfen Sie, ob die Azure-Richtlinie die Regionen, in denen der AKS bereitgestellt werden kann, nicht einschränkt.

  • (Optional) Sammeln Sie die Infrastructure-as-Code(IaC)-Vorlagen oder -Skripte, mit denen Sie den AKS-Quellcluster bereitgestellt haben.

  • Sammeln Sie die Kubernetes-Manifeste, um die Anwendungsworkload innerhalb des Zielclusters erneut zu erstellen.

    Tipp

    Bewerten Sie einen GitOps-Ansatz für die Workloadbereitstellung, bei der Kubernetes-Konfigurationsmanifeste in einem Git-Repository gespeichert und von einem GitOps-Operator automatisch angewandt werden, der im Cluster ausgeführt wird, z. B. Flux. Ein GitOps-Ansatz macht die erneute Bereitstellung von Workloads in verschiedenen Clustern so einfach wie die Installation des GitOps-Controllers und das Verweisen auf das Repository.

  • Überprüfen Sie die Implementierung des eingehenden Clusterdatenverkehrs.

  • Dokumentieren Sie die DNS-Änderungen, die erforderlich sind, um eine öffentliche Domäne auf den Endpunkt des eingehenden Clusterdatenverkehrs zu verweisen.

  • Überprüfen Sie, ob der Cluster Zustandsdaten speichert, z. B. persistente Volumes, die Sie benötigen, um zum Zielcluster zu migrieren.

  • Dokumentieren Sie die öffentliche TLS-Zertifikatverwaltung und -verteilung.

  • Erfassen Sie alle IP-Adressen, die in der Positivliste des AKS-API-Diensts definiert sind.

  • Verstehen Sie alle abhängigen Ressourcen. Einige der Ressourcen könnten sein:

    • Warteschlangen, Nachrichtenbusse, Cachemodule
    • Azure Key Vault
    • Verwaltete Identität
    • Konfiguration des virtuellen Netzwerks. Definieren sie ausreichende Subnetzgrößen, um Container-IP-Wachstum zu ermöglichen, wenn Sie das erweiterte Azure-Netzwerkmodell verwenden
    • Öffentliche IP-Adresse
    • Gateway des virtuellen Netzwerks (Virtual Network Gateway, VNG). Wenn die Kommunikation zwischen Standorten für eine lokale Umgebung in der Zielregion erforderlich ist, muss ein VNG im virtuellen Zielnetzwerk erstellt werden.
    • Privater Azure-Endpunkt. Azure PaaS-Ressourcen, die private Verknüpfungsendpunkte verwenden, müssen überprüft werden, und neue private Verknüpfungsinstanzen, die in der Zielregion erstellt wurden, z. B. ACR, Azure SQL-Datenbank, KeyVault usw.
    • Azure Application Gateway
    • Azure DNS
    • Azure Firewall
    • Azure Monitor (Container Insights)
    • Azure Container Registry kann Images zwischen ACR-Instanzen replizieren. Um optimale Leistung beim Pullen von Images zu erzielen, sollte die Registrierung in der Zielregion vorhanden sein.

      Hinweis

      Wenn Sie Azure Container Registry zum Authentifizieren bei der Containerregistrierung verwenden, kann die verwaltete Identität des neuen AKS-Clusters die gewährte RBAC-Rolle „AcrPull“ sein.

    • Azure Managed Disks
    • Azure Files

Vorbereiten

Bevor Sie mit dem Verschieben des Clusters beginnen, stellen Sie sicher, dass Sie die folgenden Vorbereitungen durchführen:

  1. Um die AKS-Clusterknoten und -pods aufzunehmen, stellen Sie bei Verwendung von Azure CNI-Netzwerken das virtuelle Netzwerk mit vielen Subnetzen mit ausreichender Größe bereit.

  2. Wenn Sie Azure Key Vault verwenden, Stellen Sie den Key Vault bereit.

  3. Stellen Sie sicher, dass die relevanten TLS-Eingangszertifikate für die Bereitstellung verfügbar sind, idealerweise in einem sicheren Speicher wie Azure Key Vault.

  4. Stellen Sie eine Containerregistrierung bereit. Synchronisieren Sie entweder die Quellregistrierungsimages automatisch, oder erstellen Sie sie neu, und übertragen Sie neue Images mithilfe einer CI/CD-Pipeline oder eines CI/CD-Skripts in die Zielregistrierung.

  5. Stellen Sie einen Azure Monitor-Arbeitsbereich bereit.

  6. (Optional) Stellen Sie Azure Application Gateway bereit, um eingehenden Datenverkehr zu behandeln. Der Application Gateway-Eingangscontroller (Application Gateway Ingress Controller, AGIC) kann eng in den Cluster integriert werden

  7. Stellen Sie alle von der Clusterworkload benötigten Datenquellen bereit, und stellen Sie die Quelldaten wieder her, oder synchronisieren Sie sie.

  8. Führen Sie vorhandene in einer CI/CD-Pipeline definierte IaC-Artefakte aus, die zum Bereitstellen des Quellclusters und der Dienste verwendet wurden, von denen sie abhängig sind. Ändern Sie die Eingabeparameter für Code oder Vorlagen so, dass sie in einer anderen Ressourcengruppe und Azure-Region erneut bereitgestellt werden.

Erneute Bereitstellung

Stellen Sie den AKS-Cluster ohne Datenmigration bereit, indem Sie die folgenden Schritte ausführen:

  1. Um die Zielumgebung in Azure zu erstellen, führen Sie die vorhandenen IaC-Artefakte manuell auf einer lokalen Arbeitsstation aus.

  2. Wenn keine IaC-Ressourcen vorhanden sind, kann die aktuelle Clusterkonfiguration als ARM-Vorlage exportiert und für den Zielbereich ausgeführt werden. IaC-Vorlagen werden von Grund auf neu erstellt mithilfe von Bicep, JSON, Terraform oder einer anderen Lösung oder sind modifizierte Versionen von Beispielvorlagen.

    Hinweis

    • Private Link-Verbindungen, mit ACR verbundene Registrierungen und Datenquellen des Azure Monitor-Arbeitsbereichs werden derzeit nicht mithilfe dieser Methode exportiert und müssen daher vor der Ausführung aus der generierten Vorlage entfernt werden.
  3. Stellen Sie die Containerworkload für das AKS-Cluster bereit. Dies kann auf zwei Arten erreicht werden:

    • Pull. Manifeste werden aus einem Repository gepullt und von einem Controller angewandt, der im Cluster ausgeführt wird. Dies wird als GitOps-Ansatz bezeichnet.
    • Pushen. Manifeste werden mithilfe des Kubernetes-API-Diensts und Kubectl-Befehlszeilentools entweder über eine CI/CD-Pipeline oder lokale Arbeitsstation in den Cluster gepusht.
  4. Um sicherzustellen, dass der neue Cluster erwartungsgemäß ausgeführt wird, führen Sie Tests und Überprüfungen durch.

  5. Ändern Sie Ihre öffentlichen DNS-Einträge so, dass sie auf die externe IP-Adresse für eingehenden Datenverkehr des Zielclusters verweisen (öffentliche IP-Adresse des Azure Load Balancer oder öffentliche IP-Adresse des Application Gateway).

  6. Eine Bereitstellung mit globaler Lastenausgleichslösung wie Azure DNS oder Azure Traffic Manager muss der Konfiguration die Region hinzufügen.

Erneute Bereitstellung mit Datenmigration

AKS-Workloads, die lokalen Speicher verwenden, z. B. persistente Volumes, um Daten oder Hostdatenbankdienste innerhalb des Clusters zu speichern, können in einem Quellcluster gesichert und in einem Zielcluster wiederhergestellt werden. Informationen zum Ausführen der Sicherung und Wiederherstellung finden Sie unter Sichern von Azure Kubernetes Service mithilfe von Azure CLI.