Freigeben über


Wiederherstellen des Azure Kubernetes-Diensts mithilfe von PowerShell

In diesem Artikel wird beschrieben, wie Sie Azure Kubernetes-Cluster aus einem von Azure Backup erstellten Wiederherstellungspunkt mit Azure PowerShell wiederherstellen.

Azure Backup unterstützt das Sichern von AKS-Clustern, einschließlich Clusterressourcen und angefügter persistenter Volumes, über eine Sicherungserweiterung. Diese Erweiterung muss im Cluster installiert werden, sodass der Sicherungstresor mit ihr kommunizieren kann, um Sicherungs- und Wiederherstellungsvorgänge auszuführen.

Sie können eine Wiederherstellung am ursprünglichen Speicherort (Original-Location Recovery, OLR) im selben AKS-Cluster oder eine Wiederherstellung des alternativen Speicherorts (Alternate-Location Recovery, ALR) in einem anderen AKS-Cluster durchführen. Mit der Wiederherstellung auf Elementebene (Item-Level Recovery, ILR) können Sie bestimmte Elemente auswählen, die aus der Sicherung wiederhergestellt werden sollen.

Hinweis

Stellen Sie vor dem Initiieren eines Wiederherstellungsvorgangs sicher, dass im Zielcluster die Sicherungserweiterung installiert und der vertrauenswürdige Zugriff für den Sicherungstresor aktiviert ist. Weitere Informationen

Voraussetzungen

Bevor Sie einen AKS-Cluster wiederherstellen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen:

  • Die AKS-Sicherung ermöglicht die Wiederherstellung auf den ursprünglichen AKS-Cluster (der gesichert wurde) und auf einen alternativen AKS-Cluster. Mit der AKS-Sicherung können Sie eine vollständige Wiederherstellung und Wiederherstellung auf Elementebene durchführen. Sie können Wiederherstellungskonfigurationen verwenden, um Parameter basierend auf den Clusterressourcen für die Wiederherstellung zu definieren.

  • Sie müssen die Sicherungserweiterung im AKS-Zielcluster installieren. Außerdem müssen Sie den vertrauenswürdigen Zugriff zwischen dem Sicherungstresor und dem AKS-Cluster aktivieren.

Weitere Informationen zu den Einschränkungen und unterstützten Szenarien finden Sie in der Supportmatrix.

Initialisieren von Variablen für Ressourcenbefehle

Geben Sie hier die erforderlichen Details für jede Ressource an, die in Ihren Befehlen verwendet werden sollen.

  • Abonnement-ID des Sicherungstresors

    $vaultSubId = "xxxxxxxx-xxxx-xxxx-xxxx"
    
  • Ressourcengruppe, zu der der Sicherungstresor gehört

    $vaultRgName = "testBkpVaultRG"
    
  • Name des Sicherungstresors

    $vaultName = "TestBkpVault"
    
  • Region, zu der der Sicherungstresor gehört

    $restoreLocation = "vaultRegion" #example eastus
    
  • ID des Ziel-AKS-Clusters, falls die Wiederherstellung auf einem alternativen AKS-Cluster ausgeführt wird

    $targetAKSClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/targetrg/providers/Microsoft.ContainerService/managedClusters/PSAKSCluster2"
    

Wiederherstellen in einem AKS-Cluster

Holen Sie den entsprechenden Wiederherstellungspunkt

Um die entsprechenden Wiederherstellungspunkte abzurufen, führen Sie die folgenden Cmdlets aus:

  1. Rufen Sie mit dem Cmdlet Get-AzDataProtectionBackupInstance alle Instanzen ab, und identifizieren Sie die relevante Instanz.

    $AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName $vaultRgName -VaultName $vaultName
    

Verwenden Sie die Cmdlets Az.Resourcegraph und Search-AzDataProtectionBackupInstanceInAzGraph, um Instanzen in mehreren Tresoren und Abonnements zu suchen.

 $AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService  -ProtectionStatus ProtectionConfigured
  1. Rufen Sie den entsprechenden Wiederherstellungspunkt ab, sobald die Instanz identifiziert wurde. Die dritte Sicherungsinstanz aus dem Ausgabearray des angegebenen Cmdlet soll wiederhergestellt werden.

    $rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName
    

Vorbereiten der Wiederherstellungsanforderung

Führen Sie zum Vorbereiten der Wiederherstellungsanforderung die folgenden Cmdlets aus:

  1. Verwenden Sie das Cmdlet New-AzDataProtectionRestoreConfigurationClientObject, um die Wiederherstellungskonfiguration vorzubereiten und die Elemente zu definieren, die im AKS-Zielcluster wiederhergestellt werden sollen.

    $aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService  -PersistentVolumeRestoreMode RestoreWithVolumeData  -IncludeClusterScopeResource $true -NamespaceMapping  @{"sourceNamespace"="targetNamespace"}
    
  2. Verwenden Sie das Cmdlet Initialize-AzDataProtectionRestoreRequest, um die Wiederherstellungsanforderung mit allen relevanten Details vorzubereiten.

    Verwenden Sie das folgende Cmdlet-Format, um die Wiederherstellung im ursprünglichen AKS-Cluster durchzuführen:

    $aksRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService  -SourceDataStore OperationalStore -RestoreLocation $restoreLocation -RestoreType OriginalLocation -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $AllInstances[2]
    

    Verwenden Sie das folgende Cmdlet-Format, um die Wiederherstellung in einem alternativen AKS-Cluster durchzuführen:

    $aksRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService  -SourceDataStore OperationalStore -RestoreLocation $restoreLocation -RestoreType AlternateLocation -TargetResourceId $targetAKSClusterId -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $AllInstances[2]
    

Auslösen des Wiederherstellungsvorgangs

Führen Sie zum Auslösen des Wiederherstellungsvorgangs die folgenden Cmdlets aus:

  1. Überprüfen Sie die zuvor erstellte Wiederherstellungsanforderung.

    $validateRestore = Test-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId  -ResourceGroupName $vaultRgName -VaultName $vaultName -RestoreRequest $aksRestoreRequest -Name $AllInstances[2].BackupInstanceName
    

    Hinweis

    Während des Wiederherstellungsvorgangs müssen der Sicherungstresor und der AKS-Cluster über bestimmte Rollenzuweisungen verfügen, um die Wiederherstellung durchzuführen:

    • Der AKS-Zielcluster sollte in der Momentaufnahmeressourcengruppe die Rolle Mitwirkender haben.
    • Die mit der Sicherungserweiterung angefügte Benutzeridentität sollte für das Speicherkonto, in dem Sicherungen gespeichert werden, über die Rolle Mitwirkender des Speicherkontos verfügen.
    • Der Sicherungstresor sollte für den Ziel-AKS-Cluster und die Momentaufnahmeressourcengruppe die Rolle Leser besitzen.
  2. Verwenden Sie zum Auslösen des Wiederherstellungsvorgangs mit der zuvor vorbereiteten Anforderung das Cmdlet Start-AzDataProtectionBackupInstanceRestore.

    $restoreJob = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId  -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName -Parameter $aksRestoreRequest
    

Nachverfolgen des Wiederherstellungsauftrags

Verfolgen Sie alle Aufträge mit dem Cmdlet Get-AzDataProtectionJob. Sie können alle Aufträge auflisten und ein bestimmtes Auftragsdetail abrufen. Verwenden Sie alternativ „Az.ResourceGraph“, um Aufträge über alle Sicherungstresore hinweg zu verfolgen.

Verwenden Sie das Cmdlet Search-AzDataProtectionJobInAzGraph, um den betreffenden Auftrag in einem beliebigen Sicherungstresor abzurufen.

$job = Search-AzDataProtectionJobInAzGraph -Subscription -SubscriptionId $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService -Operation Restore

Nächste Schritte