Activer la restauration ultraprécise


Cette page explique comment sélectionner des ressources à restaurer avec une granularité plus fine.

Présentation

La fonctionnalité de restauration ultraprécise vous permet de restaurer un sous-ensemble de ressources à partir d'une sauvegarde. La fonctionnalité de restauration précise permet d'affiner le champ d'application de restauration défini dans le plan de restauration parent. Si le champ d'application de restauration ultraprécis ne chevauche pas le champ d'application d'origine défini dans le plan de restauration parent, aucune ressource ne sera restaurée.

La fonctionnalité de restauration ultraprécise peut être activée pour les plans de restauration avec des modes de gestion des conflits au niveau des ressources individuelles :

  • Ne pas fusionner
  • Fusionner en remplaçant
  • Fusionner en remplaçant le volume

Si vos plans de restauration utilisent des modes de gestion des conflits au niveau de l'espace de noms ou de ProtectedApplication, tels que Échec en cas de conflit ou Rollback, et que vous souhaitez activer la restauration précise, vous devez mettre à jour votre plan de restauration pour utiliser des modes compatibles ou créer un plan de restauration. Pour en savoir plus sur les modes de restauration, consultez la page Gérer les conflits de ressources lors de la restauration.

Pour utiliser la restauration précise, vous pouvez définir une ou plusieurs conditions de filtre sous les filtres d'inclusion et d'exclusion. Vous pouvez sélectionner un sous-ensemble spécifique de ressources à restaurer à partir de la sauvegarde ou restaurer toutes les ressources, à l'exception d'un sous-ensemble. Vous pouvez définir des filtres d'inclusion et d'exclusion simultanément. Si des filtres d'inclusion sont utilisés, seules les ressources correspondant à ces filtres sont restaurées. Si des filtres d'exclusion sont utilisés, les ressources correspondantes sont exclues du processus de restauration. Lorsque des filtres d'inclusion et d'exclusion sont spécifiés, les filtres d'inclusion sont appliqués en premier, suivis des filtres d'exclusion. Cela signifie que les filtres d'exclusion ont la priorité sur les filtres d'inclusion. Si aucun filtre n'est spécifié, la restauration est effectuée sur la totalité du champ d'application défini dans le plan de restauration parent.

Il existe quatre attributs facultatifs pour créer une condition de filtre :

  • GroupKind : groupe et type d'API Kubernetes pour la ressource
  • Espace de noms : espace de noms pour les ressources à l'échelle de l'espace de noms
  • Nom de la ressource : nom de la ressource
  • Libellés : paires clé/valeur pour sélectionner la ressource en fonction des libellés Kubernetes

Vous pouvez utiliser une combinaison des quatre attributs précédents pour définir une condition de filtre. Si plusieurs attributs sont spécifiés, les relations entre les attributs sont considérées comme étant AND. Une ressource est sélectionnée si elle correspond à tous les attributs définis dans la condition de filtre. Vous pouvez également fournir plusieurs conditions de filtre en même temps. Les relations entre différentes conditions de filtre sont OR. Une ressource est sélectionnée si elle correspond à une condition de filtre parmi toutes les ressources fournies.

Avant de commencer

Planifiez un ensemble de restaurations.

Créer une restauration avec un filtre de restauration précis

gcloud

  1. Créez un fichier YAML ou JSON avec des filtres de restauration précis. Vous pouvez utiliser l'exemple YAML suivant.

    exclusionFilters:
    - groupKind:
        resourceGroup: foo.io
        resourceKind: Bar
      name: name1
      namespace: ns1
    inclusionFilters:
    - labels:
        key1: value1
        key2: value2
    
  2. Créez une restauration à l'aide du fichier de filtre de restauration précis que vous avez créé.

    gcloud beta container backup-restore restores create RESTORE \
        --project=PROJECT_ID \
        --location=LOCATION \
        --restore-plan=RESTORE_PLAN \
        --backup=BACKUP \
        --filter-file=FILTER_FILE
    

    Remplacez les éléments suivants :

    • RESTORE : nom de la restauration que vous souhaitez créer.
    • PROJECT_ID : ID de votre projet Google Cloud
    • LOCATION : région de calcul du plan de restauration parent.
    • RESTORE_PLAN : nom du plan de restauration parent à partir duquel cette restauration est dérivée.
    • BACKUP : sauvegarde à restaurer (doit se trouver dans le plan de sauvegarde auquel le plan de restauration parent fait référence en tant que projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN/backups/BACKUP) :

    • FILTER_FILE : chemin d'accès de vos filtres de restauration précis.

    Pour obtenir la liste complète des options, consultez la documentation gcloud beta container backup-restore restores create.

Console

Suivez les instructions ci-dessous pour créer une restauration précise dans la console Google Cloud :

  1. Dans Google Cloud Console, accédez à la page Google Kubernetes Engine.

    Accéder à Google Kubernetes Engine

  2. Dans le menu de navigation, cliquez sur Sauvegarde pour GKE.

  3. Cliquez sur l'onglet Sauvegardes.

  4. Dans la liste des sauvegardes, sélectionnez la sauvegarde que vous souhaitez restaurer, puis cliquez sur Configurer une restauration.

  5. Choisissez un plan de restauration dans la liste des plans qui s'appliquent à cette sauvegarde.

  6. Saisissez un nom et une description facultative pour la restauration.

  7. Cochez la case Activer la restauration ultraprécise.

  8. Dans la section Filtres d'inclusion ou Filtres d'exclusion, cliquez sur Ajouter une condition de filtre.

  9. Dans Condition de filtre de restauration, définissez la condition, puis cliquez sur Enregistrer les modifications.

  10. Si vous souhaitez ajouter d'autres conditions, cliquez à nouveau sur Ajouter des conditions de filtre.

  11. Cliquez sur Restaurer.

Exemples de fichiers de filtre de restauration ultraprécises

Les exemples suivants sont fournis au format YAML utilisé par Google Cloud CLI ou les instructions détaillées pour la console Google Cloud.

Restaurer une seule ressource à l'échelle d'un espace de noms

Cet exemple restaure un type de ressource ConfigMap nommé nginx-vars dans l'espace de noms webserver, à l'aide de la restauration précise InclusionFilters pour sélectionner la ressource. Si vous souhaitez choisir des ressources dans le groupe core, utilisez une chaîne vide pour resourceGroup.

gcloud

  inclusionFilters:
  - groupKind:
      resourceKind: ConfigMap
    name: nginx-vars
    namespace: webserver

Console

  1. Activez la restauration ultraprécise comme vous l'avez fait dans la procédure Créer une restauration avec un filtre de restauration ultraprécis.
  2. Dans la section Filtres d'inclusion, cliquez sur Ajouter une condition de filtre.
  3. Dans le champ Nom de la ressource, saisissez nginx-vars.
  4. Dans le champ Espace de noms, saisissez webserver.
  5. Dans le champ Type d'objet, saisissez ConfigMap.
  6. Cliquez sur Enregistrer les modifications.

Exclure une seule ressource à l'échelle du cluster

Cet exemple restaure toutes les ressources disponibles, à l'exception d'une ressource GroupKind storage.k8s.io/StorageClass nommée sc1, à l'aide de l'algorithme de restauration ultraprécis ExclusionFilters pour exclure la ressource.

gcloud

exclusionFilters:
- groupKind:
    resourceGroup: storage.k8s.io
    resourceKind: StorageClass
  name: sc1

Console

  1. Activez la restauration ultraprécise comme vous l'avez fait dans la procédure Créer une restauration avec un filtre de restauration ultraprécis.
  2. Dans la section Filtres d'exclusion, cliquez sur Ajouter une condition de filtre.
  3. Dans le champ Nom de la ressource, saisissez sc1.
  4. Dans le champ Groupe d'API, saisissez storage.k8s.io.
  5. Dans le champ Genre d'objet, saisissez StorageClass.
  6. Cliquez sur Enregistrer les modifications.

Restaurer des ressources avec deux libellés

Cet exemple restaure les ressources qui ont les libellés key1:value1 et key2:value2, en utilisant la restauration précise InclusionFilters pour sélectionner les ressources.

gcloud

inclusionFilters:
- labels:
    key1: value1
    key2: value2

Console

  1. Activez la restauration ultraprécise comme vous l'avez fait dans la procédure Créer une restauration avec un filtre de restauration ultraprécis.
  2. Dans la section Filtres d'inclusion, cliquez sur Ajouter une condition de filtre.
  3. Dans la section Libellés :

    1. Cliquez sur Add label (Ajouter un libellé).
    2. Dans le champ Clé 1, saisissez key1.
    3. Dans le champ Valeur 1, saisissez value1.
    4. Cliquez sur Ajouter une étiquette.
    5. Dans le champ Clé 2, saisissez key2.
    6. Dans le champ Valeur 2, saisissez value2.
  4. Cliquez sur Enregistrer les modifications.

Exclure toutes les ressources de certains GroupKinds

Cet exemple restaure toutes les ressources disponibles, à l'exception de GroupKind ConfigMap et storage.k8s.io/StorageClass, à l'aide de la fonction ExclusionFilters de restauration ultraprécise pour exclure ces deux GroupKind.

gcloud

exclusionFilters:
- groupKind:
    resourceKind: ConfigMap
- groupKind:
    resourceGroup: storage.k8s.io
    resourceKind: StorageClass

Console

  1. Activez la restauration ultraprécise comme vous l'avez fait dans la procédure Créer une restauration avec un filtre de restauration ultraprécis.
  2. Dans la section Filtres d'exclusion, cliquez sur Ajouter une condition de filtre.
    1. Dans le champ Type d'objet, saisissez ConfigMap.
    2. Cliquez sur Enregistrer les modifications.
  3. Dans la section Filtres d'exclusion, cliquez sur Ajouter une condition de filtre.
    1. Dans le champ Groupe d'API, saisissez storage.k8s.io.
    2. Dans le champ Genre d'objet, saisissez StorageClass.
    3. Cliquez sur Enregistrer les modifications.