Compartir vía


Restauración de Azure Kubernetes Service mediante PowerShell

En este artículo, se indica cómo restaurar el clúster de Azure Kubernetes desde un punto de restauración creado por Azure Backup mediante Azure PowerShell.

Azure Backup admite la copia de seguridad de clústeres de AKS, incluyendo los recursos de clúster y los volúmenes persistentes conectados, mediante una extensión de copia de seguridad. Esta extensión debe instalarse en el clúster, lo que permite a Backup Vault comunicarse con el para realizar operaciones de copia de seguridad y restauración.

Es posible realizar la recuperación de la ubicación original (OLR) en el mismo clúster de AKS o la recuperación alternativa de la ubicación (ALR) en un clúster de AKS diferente. La recuperación de nivel de elemento (ILR) permite seleccionar elementos específicos para restaurarlos a partir de la copia de seguridad.

Nota:

Antes de iniciar una operación de restauración, asegúrese de que el clúster de destino tenga instalada la extensión de Backup y el acceso de confianza habilitado para el almacén de Backup. Más información.

Requisitos previos

Antes de restaurar un clúster de AKS, asegúrese de cumplir con los siguientes requisitos previos:

  • La copia de seguridad de AKS permite restaurarla al clúster de AKS original (del que se ha realizado una copia de seguridad) y a un clúster de AKS alternativo. La copia de seguridad de AKS permite realizar una restauración completa y una restauración de elementos. Use configuraciones de restauración para definir parámetros basados en los recursos del clúster para la restauración.

  • Debe instalar la extensión de copia de seguridad en el clúster de AKS de destino. Además, debe habilitar el acceso de confianza entre el almacén de Backup y el clúster de AKS.

Para más información sobre las limitaciones y los escenarios admitidos, consulte la matriz de compatibilidad.

Inicializar variables para comandos de recursos

Proporcione aquí los detalles necesarios para cada recurso que se usará en los comandos.

  • Id. de suscripción del almacén de Backup

    $vaultSubId = "xxxxxxxx-xxxx-xxxx-xxxx"
    
  • Grupo de recursos al que pertenece Backup Vault

    $vaultRgName = "testBkpVaultRG"
    
  • Nombre del almacén de Backup

    $vaultName = "TestBkpVault"
    
  • Región a la que pertenece el almacén de Backup

    $restoreLocation = "vaultRegion" #example eastus
    
  • Id. del clúster de AKS de destino, en caso de que la restauración se realice en un clúster de AKS alternativo

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

Restauración en un clúster de AKS

Captura del punto de recuperación pertinente

Para capturar el punto de recuperación pertinente, ejecute los siguientes cmdlets:

  1. Recupere todas las instancias mediante el cmdlet Get-AzDataProtectionBackupInstance e identifique la instancia pertinente.

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

Para buscar en varias instancias de varios almacenes y suscripciones, use los cmdlets Az.Resourcegraph y Search-AzDataProtectionBackupInstanceInAzGraph.

 $AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService  -ProtectionStatus ProtectionConfigured
  1. Una vez identificada la instancia, capture el punto de recuperación pertinente. Desde la matriz de salida del cmdlet especificado, se restaurará la tercera instancia de copia de seguridad.

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

Preparación de la solicitud de restauración

Para preparar la solicitud de restauración, ejecute los siguientes cmdlets:

  1. Para preparar la configuración de restauración y definir los elementos que se restaurarán en el clúster de AKS de destino, use el cmdlet New-AzDataProtectionRestoreConfigurationClientObject.

    $aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService  -PersistentVolumeRestoreMode RestoreWithVolumeData  -IncludeClusterScopeResource $true -NamespaceMapping  @{"sourceNamespace"="targetNamespace"}
    
  2. Prepare la solicitud de restauración con todos los detalles pertinentes con el cmdlet Initialize-AzDataProtectionRestoreRequest.

    Para la restauración en el clúster de AKS original, use el siguiente formato de cmdlet:

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

    Para la restauración en un clúster de AKS alternativo, use el siguiente formato 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]
    

Desencadenamiento de la restauración

Para desencadenar la operación de restauración, ejecute los siguientes cmdlets:

  1. Valide la solicitud de restauración creada anteriormente.

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

    Nota:

    Durante la operación de restauración, el almacén de Backup y el clúster de AKS deben tener determinados roles asignados para realizar la restauración:

    • El clúster de AKS de destino debe tener el rol Colaborador en el grupo de recursos de instantáneas.
    • La identidad de usuario asociada a la extensión de Backup debe tener roles de Colaborador de la cuenta de almacenamiento en la cuenta de almacenamiento donde se almacenan las copias de seguridad.
    • El almacén de Backup debe tener un rol Lector en el clúster de AKS de destino y en el grupo de recursos de instantáneas.
  2. Para desencadenar la operación de restauración con la solicitud preparada anteriormente mediante el cmdlet Start-AzDataProtectionBackupInstanceRestore.

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

Seguimiento del trabajo de restauración

Realice un seguimiento de todos los trabajos mediante el cmdlet Get-AzDataProtectionJob. Puede enumerar todos los trabajos y capturar un detalle de trabajo determinado. De forma alternativa, use Az.ResourceGraph para realizar el seguimiento de los trabajos en todos los almacenes de Backup.

Para obtener el trabajo pertinente en cualquier almacén de Backup, use el cmdlet Search-AzDataProtectionJobInAzGraph.

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

Pasos siguientes