Delen via


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:

  1. Het doel-AKS-cluster moet de rol Inzender hebben voor de resourcegroep Momentopname.
  2. De gebruikersidentiteit die is gekoppeld aan de back-upextensie, moet inzenderrollen voor opslagaccounts hebben voor het opslagaccount waarin back-ups worden opgeslagen.
  3. 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

Volgende stappen