Udostępnij za pośrednictwem


Przywracanie usługi Azure Kubernetes Service przy użyciu programu PowerShell

W tym artykule opisano sposób przywracania klastra Azure Kubernetes z punktu przywracania utworzonego przez usługę Azure Backup przy użyciu programu Azure PowerShell.

Usługa Azure Backup obsługuje tworzenie kopii zapasowych klastrów usługi AKS, w tym zasobów klastra i dołączonych woluminów trwałych przy użyciu rozszerzenia kopii zapasowej. To rozszerzenie musi być zainstalowane w klastrze, aby magazyn kopii zapasowych mógł komunikować się z nim w celu wykonywania operacji tworzenia kopii zapasowych i przywracania.

Odzyskiwanie oryginalnej lokalizacji (OLR) można wykonać w tym samym klastrze usługi AKS lub w usłudze ALR (Alternate-Location Recovery) w innym klastrze usługi AKS. Odzyskiwanie na poziomie elementu (ILR) umożliwia wybranie określonych elementów do przywrócenia z kopii zapasowej.

Uwaga

Przed zainicjowaniem operacji przywracania upewnij się, że klaster docelowy ma zainstalowane rozszerzenie kopii zapasowej i włączono zaufany dostęp dla magazynu kopii zapasowych. Dowiedz się więcej.

Wymagania wstępne

Przed przywróceniem klastra usługi AKS upewnij się, że spełnione są następujące wymagania wstępne:

  • Tworzenie kopii zapasowej usługi AKS umożliwia przywracanie do oryginalnego klastra usługi AKS (kopii zapasowej) i do alternatywnego klastra usługi AKS. Kopia zapasowa usługi AKS umożliwia wykonywanie pełnego przywracania i przywracania na poziomie elementu. Konfiguracje przywracania umożliwiają definiowanie parametrów na podstawie zasobów klastra na potrzeby przywracania.

  • Należy zainstalować rozszerzenie kopii zapasowej w docelowym klastrze usługi AKS. Ponadto należy włączyć zaufany dostęp między magazynem kopii zapasowych a klastrem usługi AKS.

Aby uzyskać więcej informacji na temat ograniczeń i obsługiwanych scenariuszy, zobacz macierz obsługi.

Inicjowanie zmiennych dla poleceń zasobów

W tym miejscu podaj niezbędne szczegóły dla każdego zasobu, który ma być używany w poleceniach.

  • Identyfikator subskrypcji magazynu kopii zapasowych

    $vaultSubId = "xxxxxxxx-xxxx-xxxx-xxxx"
    
  • Grupa zasobów, do której należy magazyn kopii zapasowych

    $vaultRgName = "testBkpVaultRG"
    
  • Nazwa magazynu kopii zapasowych

    $vaultName = "TestBkpVault"
    
  • Region, do którego należy magazyn kopii zapasowych

    $restoreLocation = "vaultRegion" #example eastus
    
  • Identyfikator docelowego klastra usługi AKS na wypadek wykonania przywracania do alternatywnego klastra usługi AKS

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

Przywracanie do klastra usługi AKS

Pobieranie odpowiedniego punktu odzyskiwania

Aby pobrać odpowiednie punkty odzyskiwania, uruchom następujące polecenia cmdlet:

  1. Pobierz wszystkie wystąpienia przy użyciu Get-AzDataProtectionBackupInstance polecenia cmdlet i zidentyfikuj odpowiednie wystąpienie.

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

Aby przeszukiwać wystąpienia w wielu magazynach i subskrypcjach, użyj poleceń Az.Resourcegraph cmdlet i Search-AzDataProtectionBackupInstanceInAzGraph .

 $AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService  -ProtectionStatus ProtectionConfigured
  1. Po zidentyfikowaniu wystąpienia pobierz odpowiedni punkt odzyskiwania. Z tablicy wyjściowej danego polecenia cmdlet należy przywrócić trzecie wystąpienie kopii zapasowej.

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

Przygotowywanie żądania przywracania

Aby przygotować żądanie przywracania, uruchom następujące polecenia cmdlet:

  1. Przygotuj konfigurację przywracania i zdefiniuj elementy do przywrócenia do docelowego klastra usługi AKS przy użyciu New-AzDataProtectionRestoreConfigurationClientObject polecenia cmdlet .

    $aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService  -PersistentVolumeRestoreMode RestoreWithVolumeData  -IncludeClusterScopeResource $true -NamespaceMapping  @{"sourceNamespace"="targetNamespace"}
    
  2. Przygotuj żądanie przywracania ze wszystkimi odpowiednimi szczegółami przy użyciu Initialize-AzDataProtectionRestoreRequest polecenia cmdlet .

    Aby przywrócić do oryginalnego klastra usługi AKS, użyj następującego formatu polecenia cmdlet:

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

    Aby przywrócić do alternatywnego klastra usługi AKS, użyj następującego formatu polecenia cmdlet:

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

Wyzwalanie przywracania

Aby wyzwolić operację przywracania, uruchom następujące polecenia cmdlet:

  1. Zweryfikuj utworzone wcześniej żądanie przywracania.

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

    Uwaga

    Podczas operacji przywracania magazyn kopii zapasowych i klaster usługi AKS muszą mieć przypisane określone role w celu wykonania przywracania:

    • Docelowy klaster usługi AKS powinien mieć rolę Współautor w grupie zasobów migawki.
    • Tożsamość użytkownika dołączona z rozszerzeniem kopii zapasowej powinna mieć role Współautor konta magazynu na koncie magazynu, na którym są przechowywane kopie zapasowe.
    • Magazyn kopii zapasowych powinien mieć rolę Czytelnik w docelowym klastrze usługi AKS i grupie zasobów migawki.
  2. Aby wyzwolić operację przywracania z żądaniem przygotowanym wcześniej przy użyciu Start-AzDataProtectionBackupInstanceRestore polecenia cmdlet .

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

Śledzenie zadania przywracania

Śledź wszystkie zadania przy użyciu Get-AzDataProtectionJob polecenia cmdlet . Możesz wyświetlić listę wszystkich zadań i pobrać szczegóły określonego zadania. Alternatywnie użyj polecenia Az.ResourceGraph, aby śledzić zadania we wszystkich magazynach usługi Backup.

Aby uzyskać odpowiednie zadanie w dowolnym magazynie usługi Backup, użyj Search-AzDataProtectionJobInAzGraph polecenia cmdlet .

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

Następne kroki