Partager via


Restaurer Azure Kubernetes Service à l’aide de PowerShell

Cet article explique comment restaurer un cluster Azure Kubernetes à partir d’un point de restauration créé par la Sauvegarde Azure à l’aide d’Azure PowerShell.

Sauvegarde Azure vous permet désormais de sauvegarder des clusters AKS (ressources de cluster et volumes persistants attachés au cluster) à l’aide d’une extension de sauvegarde, qui doit être installée dans le cluster. Le coffre de sauvegarde communique avec le cluster via cette extension de sauvegarde pour effectuer des opérations de sauvegarde et de restauration.

Vous pouvez effectuer à la fois la récupération à l’emplacement d’origine (OLR) (restauration dans le cluster AKS sauvegardé) et la récupération à l’emplacement alternatif (ALR) (restauration dans un autre cluster AKS). Vous pouvez également sélectionner les éléments à restaurer à partir de la sauvegarde Item-Level Recovery (ILR).

Notes

Avant de lancer une opération de restauration, l’extension de sauvegarde du cluster cible doit être installée et l’accès approuvé doit être activé pour le coffre de sauvegarde. Plus d’informations

Initialisez les variables avec les détails requis liés à chaque ressource à utiliser dans les commandes :

  • ID d’abonnement du coffre de sauvegarde

    $vaultSubId = "xxxxxxxx-xxxx-xxxx-xxxx"
    
  • Groupe de ressources auquel le coffre de sauvegarde appartient

    $vaultRgName = "testBkpVaultRG"
    
  • Nom du coffre de sauvegarde

    $vaultName = "TestBkpVault"
    
  • Région à laquelle appartient le coffre de sauvegarde

    $restoreLocation = "vaultRegion" #example eastus
    
  • ID du cluster AKS cible, au cas où la restauration sera effectuée sur un autre cluster AKS

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

Avant de commencer

  • La sauvegarde AKS vous permet de restaurer sur un cluster AKS d’origine (qui a été sauvegardé) et sur un autre cluster AKS. La sauvegarde AKS vous permet d’effectuer une restauration complète et une restauration au niveau de l’élément. Vous pouvez utiliser des configurations de restauration pour définir des paramètres en fonction des ressources de cluster qui seront restaurées.

  • Vous devez installer l’extension de sauvegarde dans le cluster AKS cible. En outre, vous devez activer l’accès approuvé entre le coffre de sauvegarde et le cluster AKS.

Pour plus d’informations sur les scénarios pris en charge et les limitations, consultez la matrice de prise en charge.

Restaurer sur un cluster AKS

Récupérer le point de récupération approprié

Extrayez toutes les instances à l’aide de la cmdlet Get-AzDataProtectionBackupInstance, puis identifiez l’instance appropriée.

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

Vous pouvez également utiliser les cmdlets Az.Resourcegraph et Search-AzDataProtectionBackupInstanceInAzGraph pour effectuer des recherches parmi les instances dans de nombreux coffres et abonnements.

$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService  -ProtectionStatus ProtectionConfigured

Une fois l’instance identifiée, extrayez le point de récupération approprié. Supposément, à partir du tableau de sortie de la commande ci-dessus, la troisième instance de sauvegarde doit être restaurée.

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

Préparer la demande de restauration

Utilisez la cmdlet New-AzDataProtectionRestoreConfigurationClientObject pour préparer la configuration de restauration et définir les éléments à restaurer sur le cluster AKS cible.

$aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService  -PersistentVolumeRestoreMode RestoreWithVolumeData  -IncludeClusterScopeResource $true -NamespaceMapping  @{"sourceNamespace"="targetNamespace"}

Utilisez la cmdlet Initialize-AzDataProtectionRestoreRequest pour préparer la demande de restauration avec tous les détails appropriés.

Si vous souhaitez effectuer une restauration sur le cluster AKS d’origine sauvegardé, utilisez le format ci-dessous pour la cmdlet

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

Si vous souhaitez effectuer une restauration sur un autre cluster AKS, utilisez le format ci-dessous pour la cmdlet

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

Déclencher la restauration

Avant de déclencher l’opération de restauration, validez la demande de restauration créée précédemment.

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

Notes

Pendant l’opération de restauration, le coffre de sauvegarde et le cluster AKS doivent avoir certains rôles attribués pour effectuer la restauration :

  1. Le cluster AKS cible doit avoir le rôle Contributeur sur le groupe de ressources d’instantané.
  2. L’identité utilisateur attachée à l’extension de sauvegarde doit avoir des rôles Contributeur de compte de stockage sur le compte de stockage où sont stockées les sauvegardes.
  3. Le coffre de sauvegarde doit avoir un rôle Lecteur sur le cluster AKS cible et le groupe de ressources d’instantané.

À présent, utilisez la cmdlet Start-AzDataProtectionBackupInstanceRestore pour déclencher l’opération de restauration avec la requête préparée précédemment.

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

Suivi des travaux

Suivez tous les travaux à l’aide de la cmdlet Get-AzDataProtectionJob. Vous pouvez répertorier tous les travaux et extraire le détail d’un travail particulier. Vous pouvez également utiliser Az.ResourceGraph pour suivre tous les travaux dans l’ensemble des coffres de sauvegarde.

Utilisez la cmdlet Search-AzDataProtectionJobInAzGraph pour obtenir le travail approprié qui peut se trouver dans n’importe quel coffre de sauvegarde.

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

Étapes suivantes