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.
Met Azure Backup kunt u nu een back-up maken van AKS-clusters (clusterbronnen en permanente volumes die aan het cluster zijn gekoppeld) met behulp van een back-upextensie die in het cluster moet worden geïnstalleerd. Back-upkluis communiceert met het cluster via deze back-upextensie om back-up- en herstelbewerkingen uit te voeren.
U kunt zowel Original-Location Recovery (OLR) uitvoeren (herstellen in het AKS-cluster waarvan een back-up is gemaakt) als alternatieve locatieherstel (ALR) (herstellen in een ander AKS-cluster). U kunt ook de items selecteren die moeten worden hersteld vanuit de back-up die ILR (Item Level Recovery) is.
Notitie
Voordat u een herstelbewerking start, moet voor het doelcluster back-upextensie zijn geïnstalleerd en vertrouwde toegang zijn ingeschakeld voor de Backup-kluis. Meer informatie.
Initialiseer de variabelen met de vereiste details die betrekking hebben op elke resource die moet worden gebruikt in opdrachten:
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"
Voordat u begint
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 die worden hersteld.
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.
Herstellen naar een AKS-cluster
Het relevante herstelpunt ophalen
Haal alle exemplaren op met behulp van de Get-AzDataProtectionBackupInstance
cmdlet en identificeer het relevante exemplaar.
$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName $vaultRgName -VaultName $vaultName
U kunt ook en Search-AzDataProtectionBackupInstanceInAzGraph
cmdlets gebruiken Az.Resourcegraph
om te zoeken in meerdere exemplaren in meerdere kluizen en abonnementen.
$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. Uit de uitvoermatrix van de bovenstaande opdracht moet het derde back-upexemplaren worden hersteld.
$rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName
De herstelaanvraag voorbereiden
Gebruik de New-AzDataProtectionRestoreConfigurationClientObject
cmdlet om de herstelconfiguratie voor te bereiden en de items te definiëren die moeten worden hersteld naar het AKS-doelcluster.
$aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService -PersistentVolumeRestoreMode RestoreWithVolumeData -IncludeClusterScopeResource $true -NamespaceMapping @{"sourceNamespace"="targetNamespace"}
Gebruik vervolgens de Initialize-AzDataProtectionRestoreRequest
cmdlet om de herstelaanvraag voor te bereiden met alle relevante details.
Als u herstel wilt uitvoeren naar de oorspronkelijke back-up van het AKS-cluster, gebruikt u de onderstaande indeling voor de cmdlet
$aksRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService -SourceDataStore OperationalStore -RestoreLocation $restoreLocation -RestoreType OriginalLocation -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $AllInstances[2]
Als u herstel wilt uitvoeren naar een alternatief AKS-cluster, gebruikt u de onderstaande indeling voor de cmdlet
$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
Voordat u de herstelbewerking activeert, valideert u 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.
Gebruik nu de Start-AzDataProtectionBackupInstanceRestore
cmdlet om de herstelbewerking te activeren met de aanvraag die u eerder hebt voorbereid.
$restoreJob = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName -Parameter $aksRestoreRequest
Traceringstaak
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
alle taken in alle Backup-kluizen bijhouden.
Gebruik de Search-AzDataProtectionJobInAzGraph
cmdlet om de relevante taak op te halen, die zich in elke Backup-kluis kan bevinden.
$job = Search-AzDataProtectionJobInAzGraph -Subscription -SubscriptionId $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService -Operation Restore