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.

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:

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

  1. 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"}
    
  2. 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:

  1. 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.
  2. 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