Planifier un ensemble de restaurations

Cette page explique comment créer, modifier et supprimer un plan de restauration dans Google Distributed Cloud (GDC) air-gapped.

Les plans de restauration sont des scénarios de restauration préconfigurés pour une ligne de sauvegardes correspondante. Les plans de restauration peuvent attribuer des autorisations aux utilisateurs disposant du rôle "Créateur de sauvegardes" pour qu'ils utilisent ces configurations.

Les créateurs de sauvegardes peuvent restaurer rapidement et indépendamment une sauvegarde en cas d'incident. Par exemple, les données persistantes peuvent être corrompues par une mise à jour logicielle dans une application déployée, entraînant un état non valide de l'espace de noms de l'application, ce qui nécessite une restauration.

Lors de la restauration, vous pouvez éventuellement appliquer un ensemble de règles de substitution, qui visent à faire correspondre un ensemble de ressources et à remplacer la valeur actuelle d'un attribut de ces ressources par une nouvelle valeur. Par exemple, une règle de substitution peut modifier l'espace de noms des ressources sauvegardées lors de la restauration pour migrer une charge de travail d'un espace de noms vers un autre.

Avant de commencer

Pour créer un plan de restauration, vous devez disposer des éléments suivants :

  • Rôle d'identité et d'accès nécessaire :

    • Administrateur de sauvegarde de cluster d'utilisateur : gère les ressources de sauvegarde telles que les plans de sauvegarde et de restauration dans les clusters d'utilisateur. Demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle Administrateur des sauvegardes de cluster utilisateur (user-cluster-backup-admin). Pour en savoir plus, consultez Définitions des rôles.
    • Si vous êtes un opérateur d'application, demandez à votre administrateur disposant des droits d'administrateur de sauvegarde de cluster d'utilisateur de créer un plan de restauration pour vous.

Créer un plan de restauration

Créez un plan de restauration à l'aide de la console GDC ou de l'API.

Console

  1. Connectez-vous à la console GDC.
  2. Dans le menu de navigation, cliquez sur Sauvegarde pour les clusters.
  3. Cliquez sur Créer un plan de restauration.
  4. Dans la section Principes de base de la restauration du forfait, procédez comme suit, puis cliquez sur Suivant :
    1. Dans Nom du plan de restauration, saisissez le nom de votre plan de restauration.
    2. (Facultatif) Dans Description du plan de restauration, saisissez une description du plan de restauration.
    3. Dans la liste Cluster source, sélectionnez le cluster source du plan de restauration.
    4. Dans la liste Projet, sélectionnez le projet du plan de restauration.
    5. Sélectionnez le projet associé au cluster source.
    6. Dans le champ Plan de sauvegarde, choisissez un plan de sauvegarde pour un cluster existant qui correspond aux sauvegardes que vous souhaitez restaurer.
    7. Dans le champ Cluster cible, choisissez le cluster cible dans lequel vous souhaitez restaurer la sauvegarde.
  5. Dans la section Choisir les ressources d'espace de noms, procédez comme suit, puis cliquez sur Suivant :
    1. Choisissez les espaces de noms à restaurer :
      1. Cliquez sur Toutes les ressources d'espace de noms pour restaurer toutes les ressources d'espace de noms dans la sauvegarde.
      2. Cliquez sur Ressources d'espace de noms sélectionnées pour spécifier les espaces de noms dans la sauvegarde à restaurer.
        1. Cliquez sur Modifier les espaces de noms du cluster, puis sur Ajouter un espace de noms au cluster pour saisir un espace de noms.
      3. Cliquez sur Applications protégées sélectionnées pour ajouter des ressources en spécifiant l'espace de noms et le nom de l'application.
    2. Déterminez la gestion des conflits :
      1. Cliquez sur Échec en cas de conflit (non destructeur) pour entraîner l'échec de la restauration si des espaces de noms ciblés pour la restauration à partir d'une sauvegarde existent déjà dans le cluster cible.
      2. Cliquez sur Rollback (destructeur) pour supprimer les espaces de noms existants avant de restaurer les espaces de noms si des espaces de noms ciblés pour la restauration à partir d'une sauvegarde existent déjà dans le cluster cible.
    3. Déterminez la restauration des données de volume :
      1. Cliquez sur Provisionner de nouveaux volumes et restaurer les données de volume à partir de la sauvegarde pour restaurer les données de volume à partir de la sauvegarde sur un nouveau disque persistant.
      2. Cliquez sur Ne pas restaurer les données du volume pour provisionner un nouveau volume persistant. Si le cluster cible contient un volume persistant non lié qui répond aux exigences PersistentVolumeClaim, il est lié au volume.
      3. Cliquez sur Réutiliser les volumes existants contenant vos données pour ne pas restaurer les données de sauvegarde de volume. Toutes les PersistentVolumeClaims sont liées à des volumes qui référencent des disques persistants existants.
  6. Facultatif : Dans la section Choisir les ressources à l'échelle d'un cluster, procédez comme suit, puis cliquez sur Suivant :
    1. Cliquez sur Ne pas restaurer les ressources à l'échelle du cluster pour laisser la version existante de la ressource intacte.
    2. Cliquez sur Restaurer les ressources à l'échelle du cluster par GroupKind pour restaurer ces ressources.
      1. Cliquez sur Modifier GroupKinds pour ajouter d'autres ressources à l'échelle d'un cluster. Saisissez le groupe d'API et le genre d'objet pour rechercher les ressources correspondantes.
    3. Cliquez sur Conserver les ressources existantes pour créer des ressources si elles n'existent pas dans le cluster cible.
    4. Cliquez sur Remplacer les ressources dans le cluster cible pour supprimer une ressource si elle existe déjà dans le cluster cible et restaurer la copie à partir de la sauvegarde.
  7. Facultatif : Dans la section Ajouter des règles de substitution, procédez comme suit, puis cliquez sur Suivant :
    1. Cliquez sur Ajouter une règle.
    2. Dans la zone Espaces de noms du cluster, saisissez une liste d'espaces de noms correspondant aux ressources qu'ils contiennent.
    3. Pour ajouter des GroupKinds, cliquez sur Ajouter un GroupKind, puis saisissez le groupe d'API et le genre de l'objet pour rechercher les ressources correspondantes.
    4. Dans le champ Chemin JSON, saisissez le chemin JSON qui identifie les champs des ressources correspondantes pour lesquelles la substitution s'applique.
    5. Dans le champ Format de la valeur d'origine, saisissez le format d'origine à comparer à la nouvelle valeur.
    6. Dans le champ Nouvelle valeur, saisissez la nouvelle valeur qui remplace la valeur actuelle des attributs correspondants.
    7. Cliquez sur Enregistrer.
  8. Cliquez sur Créer.

API

Créez une ressource personnalisée ClusterRestorePlan pour planifier les restaurations à partir d'un ClusterBackupPlan existant. ClusterRestorePlan attribue l'ensemble exact des ressources et des espaces de noms qu'un créateur de sauvegarde est autorisé à restaurer. Voici un exemple de ClusterRestorePlan :

apiVersion: backup.gdc.goog/v1
kind: ClusterRestorePlan
metadata:
  name: restoreplan-sample
  namespace:  PROJECT_NAME
spec:
  targetCluster:
    targetClusterType: UserCluster
    targetClusterName:
      kind: "Cluster"
      name: "user-vm-1"
  description: "restores test clusters"
  clusterBackupPlanName: "backupplan-sample"
  clusterRestoreConfig:
    volumeDataRestorePolicy: RestoreVolumeDataFromBackup
    clusterResourceConflictPolicy: UseBackupVersion
    namespacedResourceRestoreMode: DeleteAndRestore
    namespacedResourceRestoreScope:
      selectedNamespaces:
        namespaces: ["nginx-2"]
    clusterBackupRepositoryRef: "backup-repository"
    substitutionRules:
      - newValue: "newhippo"
        originValuePattern: game-config-2
        target:
          groupKinds:
          jsonPath: '{.metadata.name}'
          namespaces:
          - nginx-2
      - newValue: "hippo"
        originValuePattern: game-config
        target:
          groupKinds:
          jsonPath: '{.metadata.name}'
          namespaces:
          - nginx-2

Remplacez PROJECT_NAME par le nom de votre projet GDC.

Cet exemple utilise les valeurs suivantes :


Valeur

Attribut

Description
clusterBackupPlanName Nom de l'ClusterBackupPlan à restaurer. Le ClusterBackupPlan doit exister dans le même espace de noms que le ClusterRestorePlan.
targetClusterName Nom du cluster source dans un projet auquel ce plan est associé.
description Description fournie par l'utilisateur pour l'objectif de ClusterRestorePlan.
clusterRestoreConfig Configuration du processus de restauration.
clusterBackupRepositoryRef Spécifie le dépôt dans lequel stocker les ressources Restore. Ce dépôt peut être différent de celui à partir duquel la sauvegarde est effectuée. Le dépôt doit être un dépôt ReadWrite dans le cluster.
clusterResourceConflictPolicy Spécifie le comportement à adopter pour gérer les conflits de ressources de cluster, par exemple si la ressource existe déjà dans le cluster. Spécifiez l'une des options suivantes :
  • UseExistingVersion : n'écrase pas les ressources existantes en cas de conflit.
  • UseBackupVersion : supprime et recrée les ressources de cluster existantes en cas de conflit. Il s'agit d'une option dangereuse qui peut entraîner une perte de données involontaire si elle est utilisée de manière inappropriée. Par exemple, la suppression d'une définition de ressource personnalisée oblige Kubernetes à supprimer toutes les ressources personnalisées de ce type.
volumeDataRestorePolicy Spécifiez l'une des options suivantes :
  • NoVolumeDataRestoration : les volumes persistants/demandes de volumes persistants ne sont pas restaurés.
  • RestoreVolumeDataFromBackup : de nouveaux PV et PVC sont créés à partir de la sauvegarde.
  • ReuseVolumeHandleFromBackup : crée des volumes persistants, mais tente de restaurer les PVC à l'aide de leurs volumes persistants d'origine. Destinée à la restauration sur le même cluster à partir duquel la sauvegarde a été effectuée.
namespacedResourceRestoreMode Gère la situation dans laquelle les ensembles de ressources avec espace de noms en cours de restauration existent déjà dans le cluster cible. Spécifiez l'une des options suivantes :
  • DeleteAndRestore : lorsque des ressources de premier niveau conflictuelles telles que Namespaces ou ProtectedApplications sont rencontrées, cela déclenche d'abord la suppression de la ressource conflictuelle et de toutes ses ressources référencées avant de restaurer les ressources à partir de Backup. N'utilisez ce mode que si vous avez l'intention de rétablir une partie d'un cluster à un état antérieur.
  • FailOnConflict : si des ressources de premier niveau conflictuelles telles que les ressources Namespace ou ProtectedApplication sont rencontrées au début ou pendant le processus de restauration, la Restore échoue.
  • MergeSkipOnConflict : si des ressources conflictuelles sont rencontrées lors du processus de restauration, ce mode ignore la restauration des ressources conflictuelles à partir de la sauvegarde et poursuit la restauration des autres ressources qui ne se trouvent pas dans le cluster.
  • MergeReplaceOnConflict : si des ressources en conflit sont détectées lors du processus de restauration, ce mode remplace les ressources en conflit de la sauvegarde et continue de restaurer les autres ressources qui ne se trouvent pas dans le cluster.
namespacedResourceRestoreScope Spécifie les Namespaces ou ProtectedApplications autorisés pour la restauration.
  • selectedApplications associe une application protégée à cette restauration.
  • selectedNamespaces associe un espace de noms à cette restauration.
substitutionRules Règles permettant de remplacer les valeurs des ressources Kubernetes sauvegardées lors de la restauration. Une liste vide signifie qu'aucune substitution n'a lieu. Les règles de substitution sont appliquées de manière séquentielle dans l'ordre défini. Cet ordre est important, car les modifications apportées par une règle peuvent avoir un impact sur la logique de correspondance de la règle suivante.

Une fois qu'un ClusterRestorePlan est créé, les utilisateurs disposant du rôle Créateur de sauvegardes peuvent restaurer manuellement les sauvegardes.

Afficher un plan de restauration

Affichez un plan de restauration à l'aide de la console GDC :

  1. Connectez-vous à la console GDC.
  2. Dans le menu de navigation, cliquez sur Sauvegarde pour les clusters.
  3. Cliquez sur Sélectionner un projet pour sélectionner une organisation ou un projet en fonction de votre rôle :
    1. Administrateur de la sauvegarde du cluster d'utilisateur : sélectionnez une organisation pour afficher tous les plans de restauration d'une organisation ou sélectionnez un projet pour afficher tous les plans de restauration d'un projet.
    2. Créateur de sauvegarde : sélectionnez un projet pour afficher tous les plans de restauration d'un projet.
  4. Cliquez sur l'onglet Plans de restauration.
  5. Cliquez sur un plan de restauration dans la liste pour afficher ses détails.

Modifier un plan de restauration

Si le dépôt de sauvegarde associé au plan de restauration que vous souhaitez modifier comporte une valeur dans le champ Cluster associé(lecture seule) lorsque le plan de restauration est créé, il est créé deux fois. Le plan de restauration est propagé aux clusters en lecture/écriture et en lecture seule.

Lorsque vous modifiez le plan de restauration appartenant à un dépôt de sauvegarde pour lequel des clusters en lecture et écriture et en lecture seule sont définis, vous devez modifier le plan de restauration dont le TARGET CLUSTER est défini sur le cluster en lecture et écriture.

Modifiez un plan de restauration à l'aide de la console GDC :

  1. Connectez-vous à la console GDC.
  2. Dans le menu de navigation, cliquez sur Sauvegarde pour les clusters.
  3. Cliquez sur Sélectionner un projet pour sélectionner une organisation ou un projet en fonction de votre rôle :
    1. Administrateur de la sauvegarde du cluster d'utilisateur : sélectionnez une organisation pour afficher tous les plans de restauration d'une organisation ou sélectionnez un projet pour afficher tous les plans de restauration d'un projet.
    2. Créateur de sauvegarde : sélectionnez un projet pour afficher tous les plans de restauration d'un projet.
  4. Cliquez sur l'onglet Plans de restauration.
  5. Cliquez sur le nom du plan de restauration que vous souhaitez modifier.
  6. Cliquez sur l'onglet Configuration du forfait pour afficher les champs modifiables.
  7. Cliquez sur l'icône Modifier  à côté de Ressources avec espace de noms pour modifier cette ressource :

    1. Dans la section Choisir les ressources d'espace de noms, sélectionnez les ressources d'espace de noms incluses dans la sauvegarde que vous souhaitez restaurer :

      1. Sélectionnez Toutes les ressources d'espace de noms pour restaurer toutes les ressources d'espace de noms dans la sauvegarde.
      2. Sélectionnez Ressources d'espace de noms sélectionnées pour restaurer les ressources des espaces de noms sélectionnés dans la sauvegarde :

        1. Sélectionnez Modifier les espaces de noms du cluster pour sélectionner l'espace de noms du cluster.
        2. Dans le champ Espace de noms du cluster 1, saisissez le nom de l'espace de noms.
        3. Cliquez sur le bouton Enregistrer.
      3. Sélectionnez Applications protégées sélectionnées pour restaurer les ressources des applications protégées sélectionnées dans la sauvegarde :

        1. Sélectionnez Modifier les applications protégées pour sélectionner l'espace de noms et l'application protégée.
        2. Dans le champ Espace de noms 1, saisissez le nom de l'espace de noms.
        3. Dans le champ Application protégée 1, saisissez le nom de l'application protégée.
        4. Cliquez sur le bouton Enregistrer.
  8. Cliquez sur l'icône Modifier  à côté de Ressources à portée du cluster pour modifier cette ressource :

    1. Facultatif : Dans la section Choisir les ressources à l'échelle d'un cluster, sélectionnez les ressources à l'échelle d'un cluster à restaurer en spécifiant les groupes d'API et GroupKinds, puis décidez de la manière dont les conflits doivent être résolus :

      1. Sélectionnez Ne pas restaurer les ressources à l'échelle du cluster pour supprimer les ressources à l'échelle du cluster du processus de restauration.
      2. Sélectionnez Restaurer les ressources à l'échelle du cluster par GroupKind pour restaurer les ressources par le GroupKind spécifié :

      3. Pour spécifier un GroupKind, cliquez sur le bouton Modifier GroupKind.

      4. Cliquez sur le bouton Add GroupKind (Ajouter GroupKind).

      5. Saisissez le nom de GroupKind.

      6. Cliquez sur le bouton Enregistrer.

    2. Dans la section Gestion des conflits, déterminez l'action à effectuer si la ressource existe déjà dans le cluster cible :

      1. Sélectionnez Conserver les ressources existantes pour créer des ressources si elles n'existent pas déjà dans le cluster.
      2. Sélectionnez Écraser les ressources existantes pour supprimer les ressources existantes trouvées et les remplacer par la ressource restaurée.
    3. Cliquez sur le bouton Enregistrer pour confirmer vos modifications.

  9. Dans la section Règles de substitution, cliquez sur le bouton Ajouter une règle pour ajouter une règle de substitution :

    1. Dans le champ Espaces de noms du cluster, saisissez le nom de l'espace de noms du cluster auquel appliquer cette règle de substitution.
    2. Cliquez sur le bouton Add GroupKind (Ajouter GroupKind) pour appliquer cette règle à un certain objet GroupKind.
    3. Dans le champ Chemin JSON, saisissez le chemin d'accès à l'attribut de ressource que vous souhaitez remplacer, au format JSON.
    4. Dans le champ Modèle de valeur d'origine, saisissez une expression régulière qui correspond à la valeur d'origine de l'attribut.
    5. Dans le champ Nouvelle valeur, saisissez la valeur de remplacement dans le champ cible. Si ce champ est vide, le champ cible est supprimé de la ressource.
    6. Cliquez sur le bouton Enregistrer pour terminer la création de la règle de substitution.
  10. Dans la section Règles de substitution, cliquez sur l'icône Modifier  pour modifier une règle de substitution existante.

  11. Dans la section Règles de substitution, cliquez sur l'icône  Supprimer pour supprimer une règle de substitution existante.

Supprimer un plan de restauration

RestorePlans peut être supprimé via la console GDC ou en supprimant la ressource directement depuis le serveur d'API Kubernetes. Cette opération supprime tous les artefacts RestorePlan associés du stockage d'objets.

Console

  1. Connectez-vous à la console GDC.
  2. Dans le menu de navigation, cliquez sur Sauvegarde pour les clusters.
  3. Cliquez sur Sélectionner un projet pour sélectionner une organisation ou un projet en fonction de votre rôle :
    1. Administrateur de sauvegarde de cluster d'utilisateur : sélectionnez une organisation pour afficher tous les plans de restauration d'une organisation, ou sélectionnez un projet pour afficher tous les plans de restauration d'un projet.
    2. Créateur de sauvegardes : sélectionnez un projet pour afficher tous les plans de restauration d'un projet.
  4. Cliquez sur l'onglet Plans de restauration.
  5. Cliquez sur le nom du plan de restauration que vous souhaitez supprimer.
  6. Cliquez sur le bouton Supprimer.
  7. Saisissez le nom du plan de restauration dans le champ.
  8. Cliquez sur le bouton Supprimer pour confirmer la suppression de ce plan de restauration.

API

Supprimez la ressource du plan de restauration :

kubectl delete clusterRestoreplan RESTORE_PLAN_NAME -n NAMESPACE

Remplacez les éléments suivants :

  • RESTORE_PLAN_NAME : nom du plan de restauration.
  • NAMESPACE : espace de noms contenant le plan de restauration.

Étapes suivantes