Partager via


Sauvegarder Azure Kubernetes Service à l’aide de PowerShell

Cet article explique comment configurer et sauvegarder Azure Kubernetes Service (AKS) à 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.

Avant de commencer

  • Actuellement, la sauvegarde AKS prend uniquement en charge les volumes persistants basés sur disque Azure (activés par le pilote CSI). Les sauvegardes sont stockées uniquement dans un magasin de données opérationnelles (dans votre locataire) et ne sont pas déplacées vers un coffre. Le coffre de sauvegarde et le cluster AKS doivent se trouver dans la même région.

  • La sauvegarde AKS utilise un conteneur d’objets blob et un groupe de ressources pour stocker les sauvegardes. Les ressources de cluster AKS sont stockées dans le conteneur d’objets blob, tandis que les instantanés de volume persistant sont stockés dans le groupe de ressources. Le cluster AKS et les emplacements de stockage doivent résider dans la même région. Découvrez comment créer un conteneur d’objets blob.

  • Actuellement, la sauvegarde AKS prend en charge la sauvegarde une fois par jour. Elle prend également en charge des sauvegardes plus fréquentes (toutes les 4, 8 et 12 heures) par jour. Cette solution vous permet de conserver vos données à des fins de restauration pendant jusqu’à 360 jours. Découvrez comment créer une stratégie de sauvegarde.

  • Vous devez installer l’extension de sauvegarde pour configurer les opérations de sauvegarde et de restauration sur un cluster AKS. En savoir plus sur l’extension de sauvegarde.

  • Assurez-vous que Microsoft.KubernetesConfiguration, Microsoft.DataProtection, et Microsoft.ContainerService sont enregistrés pour votre abonnement avant de lancer les opérations de configuration de sauvegarde et de restauration.

  • Veillez à respecter tous les prérequis avant de démarrer l’opération de sauvegarde ou de restauration pour la sauvegarde AKS.

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

Créer un coffre de sauvegarde

Un coffre Sauvegarde est une entité de gestion dans Azure qui stocke les données de sauvegarde de diverses charges de travail plus récentes prises en charge par la Sauvegarde Azure, notamment des serveurs Azure Database pour PostgreSQL et des disques Azure. Les coffres de sauvegarde facilitent l’organisation de vos données de sauvegarde tout en réduisant le temps nécessaire à leur gestion. Ces coffres sont basés sur le modèle Azure Resource Manager, qui fournit des fonctionnalités améliorées pour sécuriser les données de sauvegarde. Avant de créer un coffre de sauvegarde, choisissez la redondance de stockage des données dans le coffre, puis créez le coffre de sauvegarde avec cette redondance de stockage et l’emplacement.

Ici, nous créons un coffre-fort de sauvegarde TestBkpVault dans la région USA Ouest sous le groupe de ressources testBkpVaultRG. Utilisez la cmdlet New-AzDataProtectionBackupVault pour créer un coffre de sauvegarde. Pour plus d’informations, consultez Création d’un coffre Sauvegarde.

Notes

Bien que le coffre sélectionné puisse avoir le paramètre global-redundancy, la sauvegarde pour AKS ne prend actuellement en charge que le Niveau opérationnel. Toutes les sauvegardes sont stockées dans votre abonnement dans la même région que celle du cluster AKS, et elles ne sont pas copiées dans le stockage du coffre de sauvegarde.

  1. Pour définir les paramètres de stockage du coffre de sauvegarde, exécutez la cmdlet suivante :

    Notes

    Le coffre est créé avec uniquement la prise en charge de la redondance locale et du magasin de données opérationnelles.

    $storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant -DataStoreType OperationalStore
    
  2. Pour créer le coffre de sauvegarde conformément aux détails mentionnés précédemment, exécutez la cmdlet suivante :

    New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
    $TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
    

Une fois la création du coffre terminée, créez une stratégie de sauvegarde pour protéger les clusters AKS.

Créer une stratégie de sauvegarde

Pour comprendre les composants internes d’une stratégie de sauvegarde pour la sauvegarde d’AKS, récupérez le modèle de stratégie à l’aide de la cmdlet Get-AzDataProtectionPolicyTemplate. Cette commande retourne un modèle de stratégie par défaut pour un type de source de données donné. Utilisez ce modèle de stratégie pour créer une nouvelle stratégie.

$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureKubernetesService

Le modèle de stratégie se compose d’un critère de déclencheur (qui détermine les facteurs de déclenchement du travail de sauvegarde) et d’un cycle de vie (qui détermine quand supprimer, copier ou déplacer les sauvegardes). Dans la sauvegarde AKS, la valeur par défaut du déclencheur est un déclencheur horaire planifié toutes les 4 heures (PT4H) et la conservation de chaque sauvegarde est de 7 jours.

$policyDefn.PolicyRule[0]. Trigger | fl

ObjectType: ScheduleBasedTriggerContext
ScheduleRepeatingTimeInterval: {R/2023-04-05T13:00:00+00:00/PT4H}
TaggingCriterion: {Default}

$policyDefn.PolicyRule[1]. Lifecycle | fl

DeleteAfterDuration: P7D
DeleteAfterObjectType: AbsoluteDeleteOption
SourceDataStoreObjectType : DataStoreInfoBase
SourceDataStoreType: OperationalStore
TargetDataStoreCopySetting:

La sauvegarde pour AKS fournit plusieurs sauvegardes par jour. Les sauvegardes sont également réparties sur l’ensemble de la journée, si vous avez besoin de sauvegardes plus fréquentes en choisissant la fréquence de sauvegarde horaire qui a la possibilité d’effectuer des sauvegardes avec des intervalles de 4, 6, 8 ou 12 heures. Les sauvegardes sont planifiées en fonction de l’intervalle de temps sélectionné. Par exemple, si vous sélectionnez Toutes les 4 heures, les sauvegardes sont effectuées à intervalles de 4 heures.

Si une sauvegarde par jour suffit, choisissez la fréquence de sauvegarde Quotidienne. Dans la fréquence de sauvegarde quotidienne, vous pouvez spécifier l’heure de la journée à laquelle vos sauvegardes doivent s’effectuer.

Important

L’heure de la journée indique l’heure de début de la sauvegarde, et pas l’heure de fin. Le temps nécessaire pour effectuer l’opération de sauvegarde dépend de différents facteurs, notamment le nombre de volumes persistants et leur taille, ainsi que le taux d’attrition entre les sauvegardes consécutives.

Si vous souhaitez modifier la fréquence horaire ou la période de rétention, utilisez les commandes Edit-AzDataProtectionPolicyTriggerClientObject et/ou Edit-AzDataProtectionPolicyRetentionRuleClientObject. Une fois que l’objet de stratégie dispose de toutes les valeurs souhaitées, passez à la création d’une nouvelle stratégie à partir de l’objet de stratégie à l’aide de la cmdlet New-AzDataProtectionBackupPolicy.

New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name aksBkpPolicy -Policy $policyDefn

$aksBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "aksBkpPolicy"

Préparer le cluster AKS pour la sauvegarde

Une fois la création du coffre et de la stratégie terminée, vous devez remplir les conditions préalables suivantes pour préparer le cluster AKS pour la sauvegarde :

  1. Créer un compte de stockage et un conteneur d’objets blob

    La sauvegarde pour AKS stocke les ressources Kubernetes dans un conteneur d’objets blob sous la forme de sauvegardes. Pour préparer le cluster AKS pour la sauvegarde, vous devez installer une extension dans le cluster. Cette extension nécessite le compte de stockage et le conteneur d’objets blob comme entrées.

    Suivez ces étapes pour créer un compte de stockage et un conteneur.

    Notes

    1. Le compte de stockage et le cluster AKS doivent se trouver dans la même région et le même abonnement.
    2. Le conteneur d’objets blob ne doit pas contenir de systèmes de fichiers créés précédemment (sauf créés par sauvegarde pour AKS).
    3. Si votre cluster AKS source ou cible se trouve dans un réseau virtuel privé, vous devez créer un point de terminaison privé pour connecter le compte de stockage au cluster AKS.
  2. Installer l’extension de sauvegarde

    L’extension de sauvegarde est obligatoire pour être installée dans le cluster AKS pour effectuer toutes les opérations de sauvegarde et de restauration. L’extension de sauvegarde crée un espace de noms dataprotection-microsoft dans le cluster et l’utilise pour déployer ses ressources. L’extension nécessite le compte de stockage et le conteneur d’objets blob comme entrées pour l’installation. Découvrez les commandes d’installation de l’extension.

    Dans le cadre de l’installation de l’extension, une identité d’utilisateur est créée dans le groupe de ressources du pool de nœuds du cluster AKS. Pour que l’extension accède au compte de stockage, vous devez fournir cette identité le rôle Contributeur de compte de stockage. Pour attribuer le rôle requis, exécutez ces commandes

  3. Activer l’accès approuvé

Pour que le coffre de sauvegarde se connecte au cluster AKS, vous devez activer l’Accès approuvé, car il permet au coffre de sauvegarde d’avoir une vue directe sur le cluster AKS. Découvrez comment activer l’accès approuvé.

Remarque

Pour l’installation de l’extension de sauvegarde et l’activation de l’accès approuvé, les commandes sont disponibles uniquement dans Azure CLI.

Configurer des sauvegardes

Avec le coffre de sauvegarde et la stratégie de sauvegarde créés, et le cluster AKS à l’état prêt à être sauvegardé , vous pouvez maintenant commencer à sauvegarder votre cluster AKS.

Entités clés

  • Cluster à protéger

    Récupérez l’ID Azure Resource Manager (ARM) du cluster AKS à protéger. Il s’agit de l’identificateur de la base de données. Dans cet exemple, nous allons utiliser un cluster AKS nommé PSTestAKSCluster, sous un groupe de ressources aksrg, dans un autre abonnement :

    $sourceClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/aksrg /providers/Microsoft.ContainerService/managedClusters/ PSTestAKSCluster "
    
  • Groupe de ressources d'instantanés

    Les instantanés de volume persistant sont stockés dans un groupe de ressources de votre abonnement. En règle générale, il est recommandé de créer un groupe de ressources dédié comme magasin de stockage d’instantanés utilisable par le service Sauvegarde Azure. Cela permet en effet de restreindre les autorisations d’accès sur le groupe de ressources, garantissant ainsi la sécurité et la facilité de gestion des données de sauvegarde. Enregistrez l’ID d’Azure Resource Manager du groupe de ressources à l’emplacement où vous souhaitez stocker les instantanés de volume persistants.

    $snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/snapshotrg"
    

Préparer la requête

La configuration de la sauvegarde s’effectue en deux étapes :

  1. Préparez la configuration de sauvegarde pour définir les ressources de cluster à sauvegarder à l’aide de la cmdlet New-AzDataProtectionBackupConfigurationClientObject. Dans l’exemple suivant, la configuration est définie comme toutes les ressources de cluster sous les espaces de noms actuels, et les espaces de noms futurs seront sauvegardés avec l’étiquette en tant que key-value pair x=y. En outre, toutes les ressources étendues au cluster et les volumes persistants sont sauvegardés. Les espaces de noms suivants sont ignorés dans la configuration des sauvegardes et ne sont pas configurés pour les sauvegardes : kube-system, kube-node-lease, kube-public.

    $backupConfig = New-AzDataProtectionBackupConfigurationClientObject -SnapshotVolume $true -IncludeClusterScopeResource $true -DatasourceType AzureKubernetesService -LabelSelector "env=prod"
    
  2. Préparez la requête appropriée à l’aide du coffre, de la stratégie, du cluster AKS, de la configuration de sauvegarde et du groupe de ressources d’instantanés appropriés à l’aide de la cmdlet Initialize-AzDataProtectionBackupInstance.

    $backupInstance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureKubernetesService  -DatasourceLocation $dataSourceLocation -PolicyId $ aksBkpPol.Id -DatasourceId $sourceClusterId -SnapshotResourceGroupId $ snapshotrg -FriendlyName $friendlyName -BackupConfiguration $backupConfig
    

Attribuer les autorisations requises et valider

Une fois la demande préparée, vous devez attribuer à l’utilisateur les autorisations requises via le contrôle d’accès en fonction du rôle Azure (Azure RBAC) au coffre (représenté par l’identité système managée du coffre) et au cluster AKS. Vous pouvez effectuer cette opération à l’aide de la cmdlet Set-AzDataProtectionMSIPermission. Le coffre Sauvegarde utilise l’identité managée pour accéder à d’autres ressources Azure. Il est nécessaire, pour configurer la sauvegarde du cluster AKS, que l’identité managée du coffre Sauvegarde dispose d’un ensemble d’autorisations sur le cluster AKS et les groupes de ressources dans lesquels les instantanés sont créés et gérés. En outre, le cluster AKS nécessite une autorisation sur le groupe de ressources d’instantanés.

Seulement, l’identité managée affectée par le système est actuellement prise en charge pour la sauvegarde (à la fois le coffre de sauvegarde et le cluster AKS). Une identité managée affectée par le système est limitée à une par ressource et liée au cycle de vie de celle-ci. Vous pouvez accorder des autorisations à l’identité managée à l’aide du contrôle d’accès en fonction du rôle (RBAC) Azure. L’identité managée est un principal de service d’un type spécial qui ne peut être utilisé qu’avec des ressources Azure. En savoir plus sur les identités managées.

Set-AzDataProtectionMSIPermission -BackupInstance $backupInstance -VaultResourceGroup $rgName -VaultName $vaultName -PermissionsScope "ResourceGroup"

Une fois les autorisations attribuées, exécutez la cmdlet suivante pour tester la préparation des instances créées.

test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance  $backupInstance.Property 

Une fois la validation réussie, vous pouvez envoyer la demande de protection du cluster AKS à l’aide de la cmdlet New-AzDataProtectionBackupInstance.

New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $backupInstance

Exécuter une sauvegarde à la demande

Pour extraire l’instance de sauvegarde appropriée sur laquelle vous souhaitez déclencher une sauvegarde, exécutez la cmdlet Get-AzDataProtectionBackupInstance.

$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"

Vous pouvez spécifier une règle de rétention lors du déclenchement de la sauvegarde. Pour afficher les règles de rétention dans la stratégie, accédez à l’objet de stratégie pour les règles de rétention. Dans l’exemple ci-dessous, la règle portant le nom default s’affiche et nous allons utiliser cette règle pour la sauvegarde à la demande.

$policyDefn.PolicyRule | fl
BackupParameter: Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams
BackupParameterObjectType: AzureBackupParams
DataStoreObjectType: DataStoreInfoBase
DataStoreType: OperationalStore
Name: BackupHourly
ObjectType: AzureBackupRule
Trigger: Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext
TriggerObjectType: ScheduleBasedTriggerContext
IsDefault: True
Lifecycle: {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle}
Name: Default
ObjectType: AzureRetentionRule

Déclencher une sauvegarde à la demande à l’aide de la cmdlet Backup-AzDataProtectionBackupInstanceAdhoc.

$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name

Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"

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 les détails du travail appropriés à partir d’un coffre de sauvegarde.

$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureKubernetesService  -Operation OnDemandBackup

Étapes suivantes