Dela via


Återställa Azure Kubernetes Service med PowerShell

I den här artikeln beskrivs hur du återställer Azure Kubernetes-kluster från en återställningspunkt som skapats av Azure Backup med Azure PowerShell.

Azure Backup stöder säkerhetskopiering av AKS-kluster, inklusive klusterresurser och anslutna beständiga volymer, med hjälp av ett säkerhetskopieringstillägg. Det här tillägget måste installeras i klustret, vilket gör att Backup Vault kan kommunicera med det för att utföra säkerhetskopierings- och återställningsåtgärder.

Du kan utföra Original-Location Recovery (OLR) i samma AKS-kluster eller Alternate-Location Recovery (ALR) i ett annat AKS-kluster. Med återställning på objektnivå (ILR) kan du välja specifika objekt som ska återställas från säkerhetskopian.

Kommentar

Innan du påbörjar en återställningsåtgärd kontrollerar du att målklustret har säkerhetskopieringstillägget installerat och betrodd åtkomst aktiverat för säkerhetskopieringsvalvet. Läs mer.

Förutsättningar

Innan du återställer ett AKS-kluster kontrollerar du att du uppfyller följande krav:

  • Med AKS-säkerhetskopiering kan du återställa till det ursprungliga AKS-klustret (som säkerhetskopierades) och till ett alternativt AKS-kluster. Med AKS-säkerhetskopiering kan du utföra en fullständig återställning och återställning på objektnivå. Du kan använda återställningskonfigurationer för att definiera parametrar baserat på klusterresurserna för återställning.

  • Du måste installera säkerhetskopieringstillägget i AKS-målklustret. Du måste också aktivera betrodd åtkomst mellan Backup-valvet och AKS-klustret.

Mer information om begränsningar och scenarier som stöds finns i supportmatrisen.

Initiera variabler för resurskommandon

Här anger du nödvändig information för varje resurs som ska användas i dina kommandon.

  • Prenumerations-ID för Säkerhetskopieringsvalvet

    $vaultSubId = "xxxxxxxx-xxxx-xxxx-xxxx"
    
  • Resursgrupp som Backup Vault tillhör

    $vaultRgName = "testBkpVaultRG"
    
  • Namnet på säkerhetskopieringsvalvet

    $vaultName = "TestBkpVault"
    
  • Region som Backup Vault tillhör

    $restoreLocation = "vaultRegion" #example eastus
    
  • ID för aks-målklustret, om återställningen utförs till ett alternativt AKS-kluster

    $targetAKSClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/targetrg/providers/Microsoft.ContainerService/managedClusters/PSAKSCluster2"
    

Återställa till ett AKS-kluster

Hämta relevant återställningspunkt

Kör följande cmdletar för att hämta relevanta återställningspunkter:

  1. Hämta alla instanser med hjälp av cmdleten Get-AzDataProtectionBackupInstance och identifiera relevant instans.

    $AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName $vaultRgName -VaultName $vaultName
    

Om du vill söka mellan instanser i flera valv och prenumerationer använder Az.Resourcegraph du och Search-AzDataProtectionBackupInstanceInAzGraph cmdletar.

 $AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService  -ProtectionStatus ProtectionConfigured
  1. När instansen har identifierats hämtar du relevant återställningspunkt. Från utdatamatrisen för den angivna cmdleten ska den tredje säkerhetskopieringsinstansen återställas.

    $rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName
    

Förbereda återställningsbegäran

Kör följande cmdletar för att förbereda återställningsbegäran:

  1. Förbered återställningskonfigurationen och definiera de objekt som ska återställas till AKS-målklustret med hjälp av cmdleten New-AzDataProtectionRestoreConfigurationClientObject .

    $aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService  -PersistentVolumeRestoreMode RestoreWithVolumeData  -IncludeClusterScopeResource $true -NamespaceMapping  @{"sourceNamespace"="targetNamespace"}
    
  2. Förbered återställningsbegäran med all relevant information med hjälp av cmdleten Initialize-AzDataProtectionRestoreRequest .

    Använd följande cmdlet-format för att återställa till det ursprungliga AKS-klustret:

    $aksRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService  -SourceDataStore OperationalStore -RestoreLocation $restoreLocation -RestoreType OriginalLocation -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $AllInstances[2]
    

    Använd följande cmdlet-format för att återställa till ett alternativt AKS-kluster:

    $aksRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService  -SourceDataStore OperationalStore -RestoreLocation $restoreLocation -RestoreType AlternateLocation -TargetResourceId $targetAKSClusterId -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $AllInstances[2]
    

Utlös återställningen

Kör följande cmdletar för att utlösa återställningsåtgärden:

  1. Verifiera återställningsbegäran som skapades tidigare.

    $validateRestore = Test-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId  -ResourceGroupName $vaultRgName -VaultName $vaultName -RestoreRequest $aksRestoreRequest -Name $AllInstances[2].BackupInstanceName
    

    Kommentar

    Under återställningsåtgärden måste säkerhetskopieringsvalvet och AKS-klustret ha vissa roller tilldelade för att utföra återställningen:

    • AKS-målklustret ska ha rollen Deltagare i resursgruppen för ögonblicksbilder.
    • Användaridentiteten som är kopplad till säkerhetskopieringstillägget ska ha rollerna För lagringskontodeltagare på lagringskontot där säkerhetskopior lagras.
    • Säkerhetskopieringsvalvet bör ha en läsarroll i AKS-målklustret och resursgruppen för ögonblicksbilder.
  2. Så här utlöser du återställningsåtgärden med den begäran som förbereddes tidigare med hjälp av cmdleten Start-AzDataProtectionBackupInstanceRestore .

    $restoreJob = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId  -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName -Parameter $aksRestoreRequest
    

Spåra återställningsjobbet

Spåra alla jobb med hjälp av cmdleten Get-AzDataProtectionJob . Du kan visa en lista över alla jobb och hämta en viss jobbinformation. Du kan också använda Az.ResourceGraph för att spåra jobb i alla säkerhetskopieringsvalv.

Använd cmdleten Search-AzDataProtectionJobInAzGraph för att hämta relevant jobb i alla Backup-valv.

$job = Search-AzDataProtectionJobInAzGraph -Subscription -SubscriptionId $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService -Operation Restore

Nästa steg