Azure Kubernetes Service herstellen met behulp van PowerShell
In dit artikel wordt beschreven hoe u een Azure Kubernetes-cluster herstelt vanaf een herstelpunt dat is gemaakt door Azure Backup met behulp van Azure PowerShell.
Azure Backup biedt ondersteuning voor het maken van back-ups van AKS-clusters, inclusief clusterbronnen en gekoppelde permanente volumes, met behulp van een back-upextensie. Deze extensie moet worden geïnstalleerd in het cluster, zodat de Backup Vault ermee kan communiceren om back-up- en herstelbewerkingen uit te voeren.
U kunt OLR (Original-Location Recovery) uitvoeren in hetzelfde AKS-cluster of ALR (Alternate-Location Recovery) in een ander AKS-cluster. Met ILR (Item Level Recovery) kunt u specifieke items selecteren die u wilt herstellen vanuit de back-up.
Notitie
Voordat u een herstelbewerking start, moet u ervoor zorgen dat op het doelcluster de back-upextensie is geïnstalleerd en vertrouwde toegang is ingeschakeld voor de Backup-kluis. Meer informatie.
Vereisten
Voordat u een AKS-cluster herstelt, moet u ervoor zorgen dat u voldoet aan de volgende vereisten:
Met een AKS-back-up kunt u herstellen naar het oorspronkelijke AKS-cluster (waarvan een back-up is gemaakt) en naar een alternatief AKS-cluster. Met een AKS-back-up kunt u een volledige herstelbewerking en herstel op itemniveau uitvoeren. U kunt herstelconfiguraties gebruiken om parameters te definiëren op basis van de clusterbronnen voor herstel.
U moet de back-upextensie installeren in het AKS-doelcluster. U moet ook Vertrouwde toegang inschakelen tussen de Backup-kluis en het AKS-cluster.
Zie de ondersteuningsmatrix voor meer informatie over de beperkingen en ondersteunde scenario's.
Variabelen voor resourceopdrachten initialiseren
Geef hier de benodigde gegevens op voor elke resource die in uw opdrachten moet worden gebruikt.
Abonnements-id van de Backup Vault
$vaultSubId = "xxxxxxxx-xxxx-xxxx-xxxx"
Resourcegroep waartoe Backup Vault behoort
$vaultRgName = "testBkpVaultRG"
Naam van de Backup Vault
$vaultName = "TestBkpVault"
Regio waartoe de Backup Vault behoort
$restoreLocation = "vaultRegion" #example eastus
Id van het AKS-doelcluster, voor het geval de herstelbewerking wordt uitgevoerd naar een alternatief AKS-cluster
$targetAKSClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/targetrg/providers/Microsoft.ContainerService/managedClusters/PSAKSCluster2"
Herstellen naar een AKS-cluster
Het relevante herstelpunt ophalen
Voer de volgende cmdlets uit om de relevante herstelpunten op te halen:
Haal alle exemplaren op met behulp van de
Get-AzDataProtectionBackupInstance
cmdlet en identificeer het relevante exemplaar.$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName $vaultRgName -VaultName $vaultName
Gebruik en Search-AzDataProtectionBackupInstanceInAzGraph
cmdlets om te zoeken in meerdere exemplaren in meerdere kluizen en abonnementenAz.Resourcegraph
.
$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService -ProtectionStatus ProtectionConfigured
Zodra het exemplaar is geïdentificeerd, haalt u het relevante herstelpunt op. Vanuit de uitvoermatrix van de opgegeven cmdlet moet het derde back-upexemplaren worden hersteld.
$rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName
De herstelaanvraag voorbereiden
Voer de volgende cmdlets uit om de herstelaanvraag voor te bereiden:
Bereid de herstelconfiguratie voor en definieer de items die moeten worden hersteld naar het AKS-doelcluster met behulp van de
New-AzDataProtectionRestoreConfigurationClientObject
cmdlet.$aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService -PersistentVolumeRestoreMode RestoreWithVolumeData -IncludeClusterScopeResource $true -NamespaceMapping @{"sourceNamespace"="targetNamespace"}
Bereid de herstelaanvraag voor met alle relevante details met behulp van de
Initialize-AzDataProtectionRestoreRequest
cmdlet.Als u wilt herstellen naar het oorspronkelijke AKS-cluster, gebruikt u de volgende cmdlet-indeling:
$aksRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService -SourceDataStore OperationalStore -RestoreLocation $restoreLocation -RestoreType OriginalLocation -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $AllInstances[2]
Als u wilt herstellen naar een alternatief AKS-cluster, gebruikt u de volgende cmdlet-indeling:
$aksRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService -SourceDataStore OperationalStore -RestoreLocation $restoreLocation -RestoreType AlternateLocation -TargetResourceId $targetAKSClusterId -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $AllInstances[2]
De herstelbewerking activeren
Voer de volgende cmdlets uit om de herstelbewerking te activeren:
Valideer de herstelaanvraag die u eerder hebt gemaakt.
$validateRestore = Test-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId -ResourceGroupName $vaultRgName -VaultName $vaultName -RestoreRequest $aksRestoreRequest -Name $AllInstances[2].BackupInstanceName
Notitie
Tijdens de herstelbewerking moeten de Backup-kluis en het AKS-cluster bepaalde rollen hebben toegewezen om de herstelbewerking uit te voeren:
- Het doel-AKS-cluster moet de rol Inzender hebben voor de resourcegroep Momentopname.
- De gebruikersidentiteit die is gekoppeld aan de back-upextensie, moet inzenderrollen voor opslagaccounts hebben voor het opslagaccount waarin back-ups worden opgeslagen.
- De Back-upkluis moet de rol Lezer hebben in het AKS-doelcluster en de resourcegroep Voor momentopnamen.
De herstelbewerking activeren met de aanvraag die u eerder hebt voorbereid met behulp van de
Start-AzDataProtectionBackupInstanceRestore
cmdlet.$restoreJob = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName -Parameter $aksRestoreRequest
De hersteltaak bijhouden
Volg alle taken met behulp van de Get-AzDataProtectionJob
cmdlet. U kunt alle taken weergeven en een bepaalde taakdetails ophalen. U kunt ook Az.ResourceGraph gebruiken om taken in alle Back-upkluizen bij te houden.
Gebruik de Search-AzDataProtectionJobInAzGraph
cmdlet om de relevante taak op te halen in elke Backup-kluis.
$job = Search-AzDataProtectionJobInAzGraph -Subscription -SubscriptionId $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService -Operation Restore
Volgende stappen
- Beheer van back-ups van Azure Kubernetes Service-clusters.
- Overzicht van back-ups van Azure Kubernetes Service-clusters.