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 prend en charge la sauvegarde des clusters AKS, dont les ressources de cluster et les volumes persistants attachés, à l’aide d’une extension de sauvegarde. Cette extension doit être installée dans le cluster, permettant ainsi au Coffre Sauvegarde de communiquer avec elle pour effectuer les opérations de sauvegarde et de restauration.
Vous pouvez effectuer la Récupération à l’emplacement d’origine (OLR) dans le même cluster AKS ou la Récupération à l’emplacement alternatif (ALR) dans un autre cluster AKS. La récupération au niveau des éléments (ILR) vous permet de sélectionner des éléments spécifiques à restaurer à partir de la sauvegarde.
Remarque
Avant de lancer une opération de restauration, veillez à ce que le cluster cible dispose de l’Extension de sauvegarde installée et de l’Accès approuvé activé pour le Coffre Sauvegarde. Plus d’informations
Prérequis
Avant de restaurer un cluster AKS, vérifiez que vous répondez aux conditions préalables suivantes :
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 pour la restauration.
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.
Initialiser des variables pour les commandes de ressource
Fournissez ici les détails nécessaires pour chaque ressource utilisée dans vos 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, si la restauration est effectuée vers un cluster AKS alternatif
$targetAKSClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/targetrg/providers/Microsoft.ContainerService/managedClusters/PSAKSCluster2"
Restaurer sur un cluster AKS
Récupérer le point de récupération approprié
Pour extraire les points de récupération appropriés, exécutez les cmdlets suivantes :
Extrayez toutes les instances à l’aide de la cmdlet
Get-AzDataProtectionBackupInstance
, puis identifiez l’instance appropriée.$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName $vaultRgName -VaultName $vaultName
Pour rechercher dans des instances à travers plusieurs coffres et abonnements, utilisez les cmdlets Az.Resourcegraph
et Search-AzDataProtectionBackupInstanceInAzGraph
.
$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é. Une troisième instance de sauvegarde doit être restaurée à partir du tableau de sortie de la cmdlet donnée.
$rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName
Préparer la demande de restauration
Pour préparer la requête de restauration, exécutez les cmdlets suivantes :
Préparez la configuration de restauration et définissez les éléments à restaurer sur le cluster AKS cible à l’aide de la cmdlet
New-AzDataProtectionRestoreConfigurationClientObject
.$aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService -PersistentVolumeRestoreMode RestoreWithVolumeData -IncludeClusterScopeResource $true -NamespaceMapping @{"sourceNamespace"="targetNamespace"}
Préparez la requête de restauration avec tous les détails appropriés à l’aide de la cmdlet
Initialize-AzDataProtectionRestoreRequest
.Pour la restauration sur le cluster AKS d’origine, utilisez le format de cmdlet suivant :
$aksRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService -SourceDataStore OperationalStore -RestoreLocation $restoreLocation -RestoreType OriginalLocation -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $AllInstances[2]
Pour la restauration sur un cluster AKS alternatif, utilisez le format de cmdlet suivant :
$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
Pour déclencher l’opération de restauration, exécutez les cmdlets suivantes :
Validez la requête de restauration précédemment créée.
$validateRestore = Test-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId -ResourceGroupName $vaultRgName -VaultName $vaultName -RestoreRequest $aksRestoreRequest -Name $AllInstances[2].BackupInstanceName
Remarque
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 :
- Le cluster AKS cible doit avoir le rôle Contributeur sur le groupe de ressources d’instantané.
- 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.
- Le coffre de sauvegarde doit avoir un rôle Lecteur sur le cluster AKS cible et le groupe de ressources d’instantané.
Pour déclencher l’opération de restauration avec la requête précédemment préparée en utilisant la cmdlet
Start-AzDataProtectionBackupInstanceRestore
.$restoreJob = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId $vaultSubId -ResourceGroupName $vaultRgName -VaultName $vaultName -BackupInstanceName $AllInstances[2].BackupInstanceName -Parameter $aksRestoreRequest
Suivre le travail de restauration
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 aussi utiliser Az.ResourceGraph pour suivre les tâches dans l’ensemble des Coffres Sauvegarde.
Pour obtenir la tâche appropriée à partir de n’importe quel Coffre Sauvegarde, utilisez la cmdlet Search-AzDataProtectionJobInAzGraph
.
$job = Search-AzDataProtectionJobInAzGraph -Subscription -SubscriptionId $vaultSubId -ResourceGroup $vaultRgName -Vault $vaultName -DatasourceType AzureKubernetesService -Operation Restore