Ripristinare il servizio Azure Kubernetes con PowerShell

Questo articolo descrive come ripristinare il cluster Azure Kubernetes da un punto di ripristino creato da Backup di Azure usando Azure PowerShell.

Backup di Azure consente di eseguire il backup dei cluster AKS, incluse le risorse del cluster e i volumi persistenti associati, tramite un'estensione di backup. Questa estensione deve essere installata nel cluster, in modo da consentire a Backup Vault di comunicare con essa per eseguire operazioni di backup e ripristino.

È possibile eseguire il ripristino del percorso originale (OLR) nello stesso cluster del servizio Azure Kubernetes o in un cluster del servizio Azure Kubernetes alternativo (ALR) in un cluster del servizio Azure Kubernetes diverso. Il ripristino a livello di elemento consente di selezionare elementi specifici da ripristinare dal backup.

Nota

Prima di avviare un'operazione di ripristino, verificare che nel cluster di destinazione sia installata l'estensione di backup e che l'accesso attendibile sia abilitato per l'insieme di credenziali di backup. Altre informazioni.

Prerequisiti

Prima di ripristinare un cluster AKS, assicurarsi di soddisfare i prerequisiti seguenti:

  • Il backup del servizio Azure Kubernetes consente di eseguire il ripristino nel cluster del servizio Azure Kubernetes originale (di cui è stato eseguito il backup) e in un cluster del servizio Azure Kubernetes alternativo. Il backup di AKS consente di eseguire un ripristino completo e un ripristino a livello di singolo elemento. È possibile usare le configurazioni di ripristino per definire i parametri in base alle risorse del cluster per il ripristino.

  • È necessario installare l'estensione Backup nel cluster del servizio Azure Kubernetes di destinazione. Inoltre, è necessario abilitare l'accesso attendibile tra l'insieme di credenziali di backup e il cluster del servizio Azure Kubernetes.

Per altre informazioni sulle limitazioni e sugli scenari supportati, vedere la matrice di supporto.

Inizializzare le variabili per i comandi delle risorse per il ripristino del cluster AKS

In questo caso, specificare i dettagli necessari per ogni risorsa da usare nei comandi.

  • ID sottoscrizione dell'insieme di credenziali di Backup

    $vaultSubId = "xxxxxxxx-xxxx-xxxx-xxxx"
    
  • Gruppo di risorse a cui appartiene l'insieme di credenziali di Backup

    $vaultRgName = "testBkpVaultRG"
    
  • Nome dell'archivio di backup

    $vaultName = "TestBkpVault"
    
  • Regione a cui appartiene il backup vault

    $restoreLocation = "vaultRegion" #example eastus
    
  • ID del cluster del servizio Azure Kubernetes di destinazione, nel caso in cui il ripristino venga eseguito in un cluster del servizio Azure Kubernetes alternativo

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

Ripristino in un cluster del servizio Azure Kubernetes

Recupero del punto di ripristino pertinente

Per recuperare i punti di ripristino pertinenti, eseguire i cmdlet seguenti:

  1. Recuperare tutte le istanze usando il Get-AzDataProtectionBackupInstance cmdlet e identificare l'istanza pertinente.

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

Per eseguire ricerche tra istanze in più insiemi di credenziali e sottoscrizioni, usare Az.Resourcegraph e Search-AzDataProtectionBackupInstanceInAzGraph cmdlet.

 $AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService  -ProtectionStatus ProtectionConfigured
  1. Dopo aver identificato l'istanza, recuperare il punto di ripristino pertinente. Dalla matrice di output del cmdlet specificato, è necessario ripristinare la terza istanza di backup.

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

Preparare la richiesta di ripristino

Per preparare la richiesta di ripristino, eseguire i cmdlet seguenti:

  1. Preparate la configurazione di ripristino e definite gli elementi da ripristinare nel cluster AKS di destinazione utilizzando il cmdlet New-AzDataProtectionRestoreConfigurationClientObject.

    $aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService  -PersistentVolumeRestoreMode RestoreWithVolumeData  -IncludeClusterScopeResource $true -NamespaceMapping  @{"sourceNamespace"="targetNamespace"}
    
  2. Preparare la richiesta di ripristino con tutti i dettagli pertinenti usando il Initialize-AzDataProtectionRestoreRequest cmdlet .

    Per ripristinare nel cluster AKS originale, usare il formato del cmdlet seguente:

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

    Per il ripristino in un cluster AKS alternativo, usare il seguente formato del cmdlet:

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

Attivare il ripristino per il cluster AKS

Per attivare l'operazione di ripristino, eseguire i cmdlet seguenti:

  1. Convalidare la richiesta di ripristino creata in precedenza.

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

    Nota

    Durante l'operazione di ripristino, l'insieme di credenziali di Backup e il cluster del servizio Azure Kubernetes devono avere determinati ruoli assegnati per eseguire il ripristino:

    • Il cluster AKS di destinazione deve avere il ruolo Contributor nel gruppo di risorse snapshot.
    • L'identità utente associata all'estensione Backup deve avere i ruoli Storage Blob Data Contributorsull'account di archiviazione in cui sono archiviati i backup nel caso di Operational Tier e sull'account di archiviazione di staging nel caso di Vault Tier.
    • L'insieme di credenziali di backup deve avere assegnato il ruolo Lettore sul cluster AKS di destinazione e sul gruppo di risorse delle snapshot.
  2. Per attivare l'operazione di ripristino con la richiesta preparata in precedenza usando il Start-AzDataProtectionBackupInstanceRestore cmdlet .

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

    Nota

    Le risorse idratate nel gruppo di risorse di gestione temporanea e nell'account di archiviazione non vengono automaticamente pulite alla fine del processo di ripristino. Devi eliminarli manualmente.

Tenere traccia del processo di ripristino per il cluster AKS

Tenere traccia di tutti i processi usando il Get-AzDataProtectionJob cmdlet. È possibile elencare tutti i job e recuperare i dettagli di un job specifico. In alternativa, usare Az.ResourceGraph per tenere traccia dei processi in tutti gli insiemi di credenziali di Backup.

Per ottenere il processo corrispondente in qualsiasi insieme di credenziali di Backup, utilizzare il cmdlet Search-AzDataProtectionJobInAzGraph.

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

Passaggi successivi