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
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
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 CloudLOCATION
: 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 queprojects/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 :
Dans Google Cloud Console, accédez à la page Google Kubernetes Engine.
Dans le menu de navigation, cliquez sur Sauvegarde pour GKE.
Cliquez sur l'onglet Sauvegardes.
Dans la liste des sauvegardes, sélectionnez la sauvegarde que vous souhaitez restaurer, puis cliquez sur Configurer une restauration.
Choisissez un plan de restauration dans la liste des plans qui s'appliquent à cette sauvegarde.
Saisissez un nom et une description facultative pour la restauration.
Cochez la case Activer la restauration ultraprécise.
Dans la section Filtres d'inclusion ou Filtres d'exclusion, cliquez sur Ajouter une condition de filtre.
Dans Condition de filtre de restauration, définissez la condition, puis cliquez sur Enregistrer les modifications.
Si vous souhaitez ajouter d'autres conditions, cliquez à nouveau sur Ajouter des conditions de filtre.
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
- 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.
- Dans la section Filtres d'inclusion, cliquez sur Ajouter une condition de filtre.
- Dans le champ Nom de la ressource, saisissez
nginx-vars
. - Dans le champ Espace de noms, saisissez
webserver
. - Dans le champ Type d'objet, saisissez
ConfigMap
. - 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
- 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.
- Dans la section Filtres d'exclusion, cliquez sur Ajouter une condition de filtre.
- Dans le champ Nom de la ressource, saisissez
sc1
. - Dans le champ Groupe d'API, saisissez
storage.k8s.io
. - Dans le champ Genre d'objet, saisissez
StorageClass
. - 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
- 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.
- Dans la section Filtres d'inclusion, cliquez sur Ajouter une condition de filtre.
Dans la section Libellés :
- Cliquez sur Add label (Ajouter un libellé).
- Dans le champ Clé 1, saisissez
key1
. - Dans le champ Valeur 1, saisissez
value1
. - Cliquez sur Ajouter une étiquette.
- Dans le champ Clé 2, saisissez
key2
. - Dans le champ Valeur 2, saisissez
value2
.
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
- 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.
- Dans la section Filtres d'exclusion, cliquez sur Ajouter une condition de filtre.
- Dans le champ Type d'objet, saisissez
ConfigMap
. - Cliquez sur Enregistrer les modifications.
- Dans le champ Type d'objet, saisissez
- Dans la section Filtres d'exclusion, cliquez sur Ajouter une condition de filtre.
- Dans le champ Groupe d'API, saisissez
storage.k8s.io
. - Dans le champ Genre d'objet, saisissez
StorageClass
. - Cliquez sur Enregistrer les modifications.
- Dans le champ Groupe d'API, saisissez