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