Planifier un ensemble de restaurations


Cette page explique comment créer un plan de restauration Sauvegarde pour GKE, qui sert à restaurer vos sauvegardes dans Google Kubernetes Engine (GKE).

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 administrateurs pour qu'ils utilisent ces configurations. Ces utilisateurs 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 des règles de transformation, qui visent à faire correspondre un ensemble de ressources et à remplacer la valeur actuelle d'un attribut de ces ressources par une nouvelle valeur.

Avant de commencer

Planifier un ensemble de sauvegardes.

Rôles requis

Pour obtenir les autorisations nécessaires pour créer et gérer un plan de restauration, demandez à votre administrateur de vous accorder le rôle Administrateur des sauvegardes pour GKE (restauration) roles/gkebackup.restoreAdmin, qui est un sous-ensemble du rôle IAM Administrateur des sauvegardes pour GKE (roles/gkebackup.admin) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Créer un plan de restauration

Vous pouvez créer un plan de restauration pour vos sauvegardes à l'aide de Google Cloud CLI ou de Google Cloud Console.

gcloud

Pour créer un plan de restauration, exécutez la commande suivante :

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=NAMESPACED_RESOURCE_RESTORE_MODE \
    --all-namespaces \
    --cluster-resource-conflict-policy=CLUSTER_RESOURCE_CONFLICT_POLICY \
    --cluster-resource-scope-selected-group-kinds=CLUSTER_RESOURCE_SCOPE \
    --volume-data-restore-policy=VOLUME_DATA_RESTORE_POLICY

Remplacez les éléments suivants :

  • RESTORE_PLAN : nom du plan de restauration que vous souhaitez créer.
  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION : région de calcul de la ressource, par exemple us-central1. Consultez la page À propos des emplacements des ressources. L'emplacement doit correspondre à la même région que celle de l'emplacement du cluster cible.
  • BACKUP_PLAN : source des sauvegardes pouvant être restaurées avec ce plan de restauration :
    • projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME
  • CLUSTER : nom du cluster cible sur lequel vous souhaitez restaurer la sauvegarde :

    • Clusters régionaux : projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
    • Clusters zonaux : projects/PROJECT_ID/locations/ZONE/clusters/CLUSTER_NAME
  • NAMESPACED_RESOURCE_RESTORE_MODE : définit la gestion des conflits de délai de restauration pour les ressources d'espace de noms. Les ressources d'espace de noms sont toujours restaurées dans des groupes, soit par espace de noms, soit par ProtectedApplication. Utilisez l'une des options ci-dessous :

    • delete-and-restore : lorsque le cluster cible contient le même groupe de ressources que vous souhaitez restaurer dans le cluster, le groupe de ressources existant est supprimé avant la restauration des nouvelles ressources.
    • fail-on-conflict : si des groupes de ressources ciblés pour la restauration à partir d'une sauvegarde existent déjà dans le cluster cible, la restauration échouera.
  • --all-namespaces : restaure toutes les ressources d'espace de noms dans la sauvegarde. Vous pouvez également spécifier :

    • --excluded-namespaces avec une liste d'espaces de noms sous la forme NAMESPACE1,NAMESPACE2,..., pour restaurer tous les espaces de noms à l'exception de ceux dans la liste.
    • --selected-applications avec une liste d'applications protégées à restaurer ProtectedApplications, sous la forme NAMESPACE1/APP1,NAMESPACE2/APP2,....
    • --selected-namespaces avec une liste d'espaces de noms à restaurer sous la forme NAMESPACE1,NAMESPACE2,....
    • --no-namespaces ne restaure aucune ressource d'espace de noms dans la sauvegarde. Cette option ne peut pas être spécifiée avec --cluster-resource-scope-no-group-kinds.

    Vous devez spécifier l'une de ces options lors de la création d'un plan de sauvegarde.

  • CLUSTER_RESOURCE_CONFLICT_POLICY : définit la gestion des conflits de délai de restauration pour les ressources de cluster sélectionnées. Utilisez l'une des options ci-dessous :

    • use-existing-version : si les ressources en cours de restauration existent déjà dans le cluster cible, Sauvegarde pour GKE conserve les ressources existantes.

    • use-backup-version : si les ressources en cours de restauration existent déjà dans le cluster cible, Sauvegarde pour GKE remplace les ressources existantes par les nouvelles ressources de la sauvegarde.

  • --cluster-resource-scope-selected-group-kinds : (facultatif) restaure les ressources de cluster avec les genres de groupe sélectionnés au format Group/Kind. CLUSTER_RESOURCE_SCOPE définit les GroupKinds (types de groupes) des ressources de cluster à restaurer. Par exemple, apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass.

    Vous pouvez également spécifier :

    • cluster-resource-scope-all-group-kinds pour sélectionner tous les types de groupe de ressources de cluster et les restaurer.
    • cluster-resource-scope-excluded-group-kinds avec une liste de types de groupe de ressources de cluster afin de restaurer tous les types de groupe de ressources de cluster à l'exception de ceux dans la liste.
    • cluster-resource-scope-no-group-kinds. Cette option ne peut pas être utilisée avec --no-namespaces.

    Si vous ne spécifiez aucune de ces options, aucune ressource de cluster ne sera restaurée.

  • VOLUME_DATA_RESTORE_POLICY : définit la manière dont les données sont renseignées pour les volumes restaurés. Utilisez l'une des options suivantes :

    • restore-volume-data-from-backup : les nouveaux volumes persistants seront restaurés à l'aide des données de sauvegarde de volume correspondantes dans la sauvegarde.

    • reuse-volume-handle-from-backup : les volumes persistants seront préprovisionnés à l'aide du descripteur de volume du volume persistant d'origine dans la sauvegarde.

    • no-volume-data-restoration : les volumes persistants ne seront pas restaurés. La restauration ne restaure que les PVC sélectionnés et s'attend à ce que le pilote de stockage correspondant provisionne de manière dynamique des volumes persistants vides ou les lie à des volumes persistants préprovisionnés créés hors bande.

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

Créer un RestorePlan (plan de restauration) pour tous les espaces de noms

La commande suivante crée un RestorePlan pour restaurer tous les espaces de noms et toutes les ressources du cluster :

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=fail-on-conflict \
    --all-namespaces \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-all-group-kinds \
    --volume-data-restore-policy=restore-volume-data-from-backup

Créer un RestorePlan pour restaurer un espace de noms

La commande suivante crée un objet RestorePlan pour restaurer l'espace de noms my-ns à partir de la sauvegarde :

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=delete-and-restore \
    --selected-namespaces=my-ns \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-selected-group-kinds=apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass \
    --volume-data-restore-policy=restore-volume-data-from-backup

Créer un RestorePlan pour restaurer un fichier ProtectedApplication afin de reconnecter les volumes d'origine

La commande suivante crée un RestorePlan pour restaurer l'application ProtectedApplication my-ns/my-app afin de reconnecter les volumes d'origine :

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=delete-and-restore \
    --selected-applications=my-ns/my-app \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-no-group-kinds \
    --volume-data-restore-policy=reuse-volume-handle-from-backup

Créer un RestorePlan pour restaurer uniquement les ressources du cluster

La commande suivante crée un RestorePlan pour restaurer toutes les ressources du cluster :

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=fail-on-conflict \
    --no-namespaces \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-all-group-kinds

Console

Suivez les instructions ci-dessous pour créer un plan de restauration dans la console Google Cloud :

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

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

  3. Cliquez sur Créer un plan de restauration.

  4. Dans la section Nommer votre plan et choisir un cluster, procédez comme suit, puis cliquez sur Suivant :

    1. Saisissez le nom du plan de restauration et la description facultative.
    2. Choisissez un plan de sauvegarde pour un cluster existant qui correspond aux sauvegardes que vous souhaitez restaurer.
    3. 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 :

      • Cliquez sur Toutes les ressources d'espace de noms pour restaurer toutes les ressources d'espace de noms dans la sauvegarde.
        1. Cliquez sur Ajouter des espaces de noms dans la section "Exceptions" pour exclure tous les espaces de noms de la sauvegarde.
      • Cliquez sur Ressources d'espace de noms sélectionnées pour spécifier les espaces de noms dans la sauvegarde à restaurer.
      • 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.
      • Cliquez sur Aucune ressource d'espace de noms pour ne restaurer aucune ressource d'espace de noms.
    2. Choisissez comment gérer les conflits si des ressources d'espace de noms sont sélectionnées :

      • 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.
      • 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. Choisissez comment restaurer les données de volume, puis cliquez sur Suivant :

      • 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.
      • 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.
      • 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. Choisissez les types de groupe à restaurer :

      • Cliquez sur Toutes les ressources à l'échelle du cluster pour restaurer toutes les ressources à l'échelle du cluster dans la sauvegarde.
        1. Cliquez sur Ajouter GROUPKINDS dans la section "Exceptions" pour exclure toutes les ressources à l'échelle du cluster dans la sauvegarde.
      • Cliquez sur Ressources à l'échelle du cluster sélectionnées pour spécifier les ressources à l'échelle du cluster à restaurer dans la sauvegarde. apiextensions.k8s.io/CustomResourceDefinition et storage.k8s.io/StorageClass sont sélectionnés par défaut. Cliquez sur Ajouter GROUPKIND pour ajouter d'autres ressources à l'échelle du cluster.
      • Cliquez sur Aucune ressource à l'échelle du cluster pour choisir de ne restaurer aucune ressource de cluster.
    2. Choisissez comment gérer les conflits si des ressources à l'échelle du cluster sont sélectionnées :

      • Cliquez sur Conserver les ressources dans le cluster cible pour ignorer une ressource si elle existe déjà dans le cluster cible.
      • 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 transformation, procédez comme suit, puis cliquez sur Suivant :

    1. Cliquez sur Ajouter une règle et saisissez éventuellement une description.
    2. Si vous souhaitez limiter les règles de transformation aux ressources correspondant à des conditions spécifiques, procédez comme suit dans la section Spécifier des conditions de ressources et des actions :
      1. Cliquez sur Condition d'espaces de noms et saisissez une liste d'espaces de noms correspondant aux ressources qu'ils contiennent.
      2. Cliquez sur Condition de GroupKind, saisissez le genre du groupe d'API, puis indiquez le genre de l'objet. Cela permet de faire correspondre un groupe d'API aux ressources de ces types.
      3. Cliquez sur Condition JSONPath, puis saisissez le chemin JSON qui identifie les champs des ressources correspondantes pour lesquelles la transformation s'applique.
      4. Saisissez la nouvelle valeur qui remplace la valeur actuelle des attributs correspondants ou cochez la case Remplacer des valeurs spécifiques (à l'aide d'une expression régulière). Ensuite, saisissez le modèle à comparer à la valeur actuelle de ces ressources.
    3. Cliquez sur Enregistrer les modifications.
  8. Vérifiez les informations du plan de restauration, puis cliquez sur Créer un plan.

Afficher un plan de restauration

Vous pouvez afficher un plan de restauration et les informations associées à l'aide de la gcloud CLI ou de la console Google Cloud.

gcloud

Pour répertorier tous les plans de restauration du projet et de l'emplacement, exécutez la commande suivante :

gcloud beta container backup-restore restore-plans list \
    --project=PROJECT_ID \
    --location=LOCATION

Pour les commandes list uniquement, vous pouvez spécifier - comme valeur pour n'importe quel paramètre, à l'exception de PROJECT_ID. La valeur - sert de caractère générique. La valeur - est utilisée par défaut pour tout paramètre si vous ne spécifiez pas d'option de ligne de commande ou ne définissez pas de propriété.

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

Pour afficher les informations relatives à un plan de restauration, exécutez la commande suivante :

gcloud beta container backup-restore restore-plans describe RESTORE_PLAN \
     --project=PROJECT_ID \
     --location=LOCATION

Console

Suivez les instructions ci-dessous pour afficher un plan de restauration et les informations associées dans la console Google Cloud :

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

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

  3. Cliquez sur l'onglet Plans de restauration.

  4. Développez le plan de sauvegarde, puis cliquez sur le nom du plan de restauration.

  5. Cliquez sur l'onglet Détail pour afficher les informations liées.

Mettre à jour un plan de restauration

Mettez à jour un plan de restauration et ses informations à l'aide de gCloud CLI.

gcloud

Pour mettre à jour un plan de restauration, par exemple en ajoutant une description, exécutez la commande suivante :

gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --description=DESCRIPTION

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

Console

Suivez les instructions ci-dessous pour mettre à jour un plan de restauration dans la console Google Cloud :

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

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

  3. Cliquez sur l'onglet Plans de restauration.

  4. Cliquez sur le nom du plan de restauration.

  5. Cliquez sur l'onglet Détails.

  6. Cliquez sur  Modifier pour modifier une section du plan, puis cliquez sur Enregistrer les modifications.

Supprimer un plan de restauration

Vous pouvez supprimer un plan de restauration à l'aide de gcloud CLI ou de Google Cloud Console. La suppression d'un plan de restauration supprime également tous les plans de restauration enfants.

gcloud

Pour supprimer un plan de restauration, exécutez la commande suivante :

gcloud beta container backup-restore restore-plans delete RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION

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

Console

Suivez les instructions ci-dessous pour supprimer un plan de restauration dans la console Google Cloud :

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

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

  3. Cliquez sur l'onglet Plans de restauration.

  4. Développez le cluster, puis cliquez sur le nom du plan.

  5. Cliquez sur Supprimer le plan.

  6. Saisissez le nom du plan de restauration, puis cliquez sur Supprimer le plan de restauration dans la boîte de dialogue de confirmation.

Étape suivante