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 umożliwia teraz tworzenie kopii zapasowych klastrów usługi AKS (zasobów klastra i trwałych woluminów dołączonych do klastra) przy użyciu rozszerzenia kopii zapasowej, które należy zainstalować w klastrze. Magazyn kopii zapasowych komunikuje się z klastrem za pośrednictwem tego rozszerzenia kopii zapasowej w celu wykonywania operacji tworzenia kopii zapasowych i przywracania.

Odzyskiwanie oryginalnej lokalizacji (OLR) ( przywracanie w klastrze usługi AKS, którego kopia zapasowa została utworzona) i odzyskiwanie alternatywnej lokalizacji (ALR) (przywracanie w innym klastrze usługi AKS). Możesz również wybrać elementy do przywrócenia z kopii zapasowej, która jest odzyskiwaniem na poziomie elementu (ILR).

Uwaga

Przed zainicjowaniem operacji przywracania klaster docelowy powinien mieć zainstalowane rozszerzenie kopii zapasowej i włączony zaufany dostęp dla magazynu kopii zapasowych. Dowiedz się więcej.

Zainicjuj zmienne z wymaganymi szczegółami związanymi z poszczególnymi zasobami, które mają być używane 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, jeśli przywracanie zostanie wykonane do alternatywnego klastra usługi AKS

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

Przed rozpoczęciem

  • 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 można używać do definiowania parametrów na podstawie zasobów klastra, które zostaną przywrócone.

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

Przywracanie do klastra usługi AKS

Pobieranie odpowiedniego punktu odzyskiwania

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

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

Można również używać Az.Resourcegraph poleceń cmdlet i Search-AzDataProtectionBackupInstanceInAzGraph do wyszukiwania między wystąpieniami w wielu magazynach i subskrypcjach.

$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService  -ProtectionStatus ProtectionConfigured

Po zidentyfikowaniu wystąpienia pobierz odpowiedni punkt odzyskiwania. Podobno z tablicy wyjściowej powyższego polecenia trzecie wystąpienie kopii zapasowej ma zostać przywrócone.

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

Przygotowywanie żądania przywracania

New-AzDataProtectionRestoreConfigurationClientObject Użyj polecenia cmdlet , aby przygotować konfigurację przywracania i zdefiniować elementy do przywrócenia do docelowego klastra usługi AKS.

$aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService  -PersistentVolumeRestoreMode RestoreWithVolumeData  -IncludeClusterScopeResource $true -NamespaceMapping  @{"sourceNamespace"="targetNamespace"}

Następnie użyj Initialize-AzDataProtectionRestoreRequest polecenia cmdlet , aby przygotować żądanie przywracania ze wszystkimi odpowiednimi szczegółami.

Jeśli chcesz wykonać przywracanie do oryginalnej kopii zapasowej klastra usługi AKS, użyj poniższego formatu polecenia cmdlet

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

Jeśli chcesz wykonać przywracanie do alternatywnego klastra usługi AKS, użyj poniższego 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

Przed wyzwoleniem operacji przywracania 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:

  1. Docelowy klaster usługi AKS powinien mieć rolę Współautor w grupie zasobów migawki.
  2. 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.
  3. Magazyn kopii zapasowych powinien mieć rolę Czytelnik w docelowym klastrze usługi AKS i grupie zasobów migawki.

Teraz użyj Start-AzDataProtectionBackupInstanceRestore polecenia cmdlet , aby wyzwolić operację przywracania z wcześniej przygotowanym żądaniem.

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

Zadanie śledzenia

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

Search-AzDataProtectionJobInAzGraph Użyj polecenia cmdlet , aby uzyskać odpowiednie zadanie, które może znajdować się w dowolnym magazynie usługi Backup.

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

Następne kroki