Planifier un ensemble de sauvegardes


Cette page explique comment créer un plan de sauvegarde Sauvegarde pour GKE, qui sert à sauvegarder vos charges de travail dans Google Kubernetes Engine (GKE).

Les plans de sauvegarde fournissent les fonctions de configuration, d'emplacement et de gestion d'une séquence de sauvegardes. Un plan de sauvegarde contient une configuration de sauvegarde comprenant le cluster source, la sélection des charges de travail à sauvegarder et la région de stockage des artefacts de sauvegarde produits dans le cadre de ce plan.

Vous pouvez créer un ou plusieurs plans de sauvegarde pour chaque cluster. Il existe deux raisons principales pour lesquelles vous pouvez souhaiter plus d'un plan de sauvegarde pour chaque cluster :

  • Vous voulez stocker vos artefacts de sauvegarde dans plusieurs régions. Dans ce cas, créez un plan de sauvegarde pour chaque région de stockage des sauvegardes.
  • Vous souhaitez partitionner les sauvegardes de votre cluster, par exemple :

    • Plutôt qu'une sauvegarde très volumineuse effectuée à un moment de la journée, vous préférez répartir plusieurs sauvegardes, plus petites, tout au long de la journée.
    • Vous souhaitez sauvegarder certaines parties de votre cluster plus souvent que d'autres (par exemple, des sauvegardes quotidiennes pour certains espaces de noms et des sauvegardes horaires pour d'autres).

Nous recommandons la configuration d'au moins un plan de sauvegarde pour chaque cluster.

Vous pouvez créer un plan de sauvegarde avec une méthode de planification des sauvegardes qui vous permet de créer automatiquement les sauvegardes : planification intelligente ou planification Cron. Nous vous recommandons la planification intelligente pour votre plan de sauvegarde. Cela garantit que les sauvegardes sont automatiquement créées pour répondre aux exigences d'objectif de point de récupération (RPO). Pour en savoir plus, consultez la section Créer et supprimer automatiquement des sauvegardes.

Si vous ne souhaitez pas créer de plan de sauvegarde avec des méthodes de planification des sauvegardes, vous devez sauvegarder manuellement vos charges de travail. Après la création d'un plan de sauvegarde, vous pouvez créer une sauvegarde à partir de ce plan.

Avant de commencer

Rôles requis

Pour obtenir les autorisations nécessaires pour créer et gérer un plan de sauvegarde, demandez à votre administrateur de vous accorder le rôle Administrateur des sauvegardes pour GKE (roles/gkebackup.backupAdmin), 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éez un plan de sauvegarde

Créez un plan de sauvegarde en utilisant gcloud CLI ou Google Cloud Console.

gcloud

Pour créer un plan de sauvegarde avec une planification, exécutez la commande suivante :

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --encryption-key=ENCRYPTION_KEY
    --target-rpo-minutes=TARGET_RPO_MINUTES \
    --exclusion-windows-file=EXCLUSION_WINDOWS_FILE
    --cron-schedule=CRON_SCHEDULE \
    --backup-retain-days=RETAIN_DAYS \
    --backup-delete-lock-days=DELETE_LOCK_DAYS \
    --locked

Remplacez les éléments suivants :

  • BACKUP_PLAN : nom du plan de sauvegarde 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.
  • CLUSTER : chemin d'accès relatif du cluster :
    • Clusters régionaux : projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
    • Clusters zonaux : projects/PROJECT_ID/locations/ZONE/clusters/CLUSTER_NAME
  • CLUSTER_NAME : nom du cluster à sauvegarder.
  • --all-namespaces : sauvegarde tous les espaces de noms du cluster.

    Vous pouvez également spécifier :

    • --selected-applications avec une liste d'ProtectedApplications à sauvegarder sous la forme NAMESPACE1/APP1,NAMESPACE2/APP2,....
    • --selected-namespaces avec une liste d'espaces de noms à sauvegarder sous la forme NAMESPACE1,NAMESPACE2,....

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

  • --include-secrets : argument facultatif permettant d'inclure les ressources Secret si elles relèvent du champ d'application de la sauvegarde.

  • --include-volume-data : argument facultatif pour inclure des données de volume persistant dans la sauvegarde. Ne définissez pas cet argument si vous souhaitez créer des volumes vides pendant la restauration.

  • ENCRYPTION_KEY : argument facultatif permettant de définir le chemin d'accès à une clé de chiffrement gérée par le client. Consultez la section À propos du chiffrement CMEK.

  • TARGET_RPO_MINUTES : argument requis si EXCLUSION_WINDOWS_FILE est défini. Spécifiez le RPO cible en minutes. La planification intelligente utilise cette valeur pour créer automatiquement des sauvegardes. La durée minimale est de 60 minutes (1 heure) et la durée maximale de 86 400 minutes (60 jours). Vous ne pouvez pas définir simultanément TARGET_RPO_MINUTES et CRON_SCHEDULE dans un même plan de sauvegarde.

  • EXCLUSION_WINDOWS_FILE : argument facultatif permettant de définir des périodes pendant lesquelles la sauvegarde ne peut pas avoir lieu. Toutes les heures sont interprétées par rapport au fuseau horaire UTC. Cet argument n'est disponible que lorsque TARGET_RPO_MINUTES est défini.

  • CRON_SCHEDULE : argument facultatif permettant de définir une planification Cron qui crée automatiquement des sauvegardes et accepte la syntaxe cron standard. Par exemple, "10 3 * * *" crée une sauvegarde tous les jours à 03:10. Toutes les heures sont indiquées selon le fuseau horaire UTC. L'intervalle minimal entre les sauvegardes planifiées est de 10 minutes. Vous ne pouvez pas définir simultanément CRON_SCHEDULE et TARGET_RPO_MINUTES dans un même plan de sauvegarde.

  • RETAIN_DAYS : argument requis si TARGET_RPO_MINUTES ou CRON_SCHEDULE est défini. Spécifiez le nombre de jours de conservation de la sauvegarde. Les sauvegardes de ce plan sont automatiquement supprimées après l'expiration de la période de conservation.

  • DELETE_LOCK_DAYS : argument facultatif permettant de spécifier le nombre de jours pendant lesquels les sauvegardes ne peuvent pas être supprimées. Si cette valeur est définie, les sauvegardes créées pour ce plan ne peuvent pas être supprimées (automatiquement ou manuellement) avant l'expiration de cette durée de vie.

  • --locked : argument facultatif permettant de verrouiller la règle de conservation du plan de sauvegarde.

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

Créer un plan de sauvegarde pour tous les espaces de noms avec un RPO de 24 heures et une seule fenêtre d'exclusion

Créez un fichier window.yaml contenant un tableau YAML de exclusionWindows.

exclusionWindows:
- startTime:
    hours: 1
    minutes: 0
  duration: "3600s"
  singleOccurrenceDate:
    day: 1
    month: 3
    year: 2024

La commande suivante crée un plan de sauvegarde pour tous les espaces de noms avec un RPO cible de 24 heures et pour lequel aucune sauvegarde n'est autorisée entre 1h00 et 2h00 le 1er mars 2024. Les sauvegardes sont conservées sept jours et verrouillées pendant trois jours après leur création :

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --target-rpo-minutes=1440 \
    --exclusion-windows-file=window.yaml \
    --backup-retain-days=7 \
    --backup-delete-lock-days=3 \
    --locked

Créer un plan de sauvegarde pour tous les espaces de noms avec un RPO de deux heures et plusieurs périodes d'exclusion

Créez un fichier window.yaml contenant un tableau YAML de exclusionWindows : une fenêtre hebdomadaire et une fenêtre d'occurrence unique.

exclusionWindows:
- startTime:
    hours: 15
    minutes: 0
  duration: "5400s"
  daysOfWeek:
    daysOfWeek:
    - MONDAY
    - FRIDAY
- startTime:
    hours: 1
    minutes: 0
  duration: "3600s"
  singleOccurrenceDate:
    day: 1
    month: 3
    year: 2024

La commande suivante crée un plan de sauvegarde pour tous les espaces de noms avec un RPO cible de deux heures et pour lequel aucune sauvegarde n'est autorisée de 1h00 à 2h00 le 1er mars 2024 et de 15h00 à 16h30 les lundis et vendredis. Les sauvegardes sont conservées sept jours et verrouillées pendant trois jours après leur création :

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --target-rpo-minutes=120 \
    --exclusion-windows-file=window.yaml \
    --backup-retain-days=7 \
    --backup-delete-lock-days=3 \
    --locked

Créer un plan de sauvegarde pour tous les espaces de noms avec une programmation Cron quotidienne

La commande suivante crée un plan de sauvegarde afin de planifier tous les jours à 5h20 une sauvegarde de tous les espaces de noms. Les sauvegardes sont conservées sept jours et verrouillées pendant trois jours après leur création :

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --cron-schedule="20 5 * * *" \
    --backup-retain-days=7 \
    --backup-delete-lock-days=3 \
    --locked

Créer un plan de sauvegarde pour un espace de noms sélectionné avec une programmation Cron toutes les heures

La commande suivante crée un plan de sauvegarde afin de planifier une sauvegarde de l'espace de noms sélectionné (my-ns) à la quinzième minute de chaque heure. Les sauvegardes sont conservées pendant trois jours après leur création :

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --selected-namespaces=my-ns \
    --include-secrets \
    --include-volume-data \
    --cron-schedule="15 * * * *" \
    --backup-retain-days=3

Créer un plan de sauvegarde pour un ProtectedApplication sélectionné

La commande suivante crée un plan de sauvegarde qui cible l'application ProtectedApplication (my-ns/my-app).

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --selected-applications=my-ns1/my-app1,my-ns2/my-app2 \
    --include-secrets \
    --include-volume-data

Console

Suivez les instructions ci-dessous pour créer un plan de sauvegarde 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 sauvegarde.

  4. Dans la section Détails du plan, procédez comme suit :

    1. Sélectionnez le cluster à sauvegarder.
    2. Saisissez le nom du plan de sauvegarde et la description facultative.
    3. Choisissez un emplacement pour la sauvegarde.
  5. Pour créer automatiquement des sauvegardes, dans la section Planning des sauvegardes, cochez la case Activer la planning des sauvegardes, puis choisissez l'une des méthodes suivantes :

    1. Sélectionnez Programmation intelligente et procédez comme suit :

      1. Dans le champ RPO cible, saisissez le RPO pour le plan de sauvegarde puis la valeur de RPO dans le menu déroulant (Minutes, Heures ou Jours dans la liste déroulante.
      2. Facultatif : cochez la case Définir une fenêtre d'exclusion de sauvegarde récurrente unique pour exclure la sauvegarde.
        1. Sélectionnez Quotidienne ou Hebdomadaire dans la période d'exclusion.
        2. Dans la section Répéter le, sélectionnez les jours de la semaine à exclure du plan de sauvegarde. Ce champ ne s'affiche que pour la période d'exclusion hebdomadaire.
        3. Dans le champ Heure de début de la fenêtre, saisissez l'heure de début d'exclusion du plan de sauvegarde.
        4. Dans le champ Durée, saisissez la durée d'exclusion du plan de sauvegarde, puis sélectionnez Secondes, Minutes ou Heures dans le menu déroulant.
      3. Facultatif : Si vous souhaitez créer une ou plusieurs fenêtres d'exclusion de sauvegarde à occurrence unique, cochez la case Définir une ou plusieurs dates d'exclusion de sauvegarde, puis procédez comme suit :
        1. Cliquez sur Ajouter une date d'exclusion.
        2. Dans le champ Date et heure de début de la fenêtre d'exclusion, cliquez sur l'icône , puis sélectionnez la Date et l'Heure pour les sauvegardes.
        3. Dans le champ Durée, saisissez la durée d'exclusion du plan de sauvegarde, puis sélectionnez Secondes, Minutes ou Heures dans le menu déroulant.
    2. Sélectionnez Programmation Cron et saisissez une expression CRON en utilisant la syntaxe cron standard. Par exemple, 10 3 * * * crée une sauvegarde tous les jours à 03h10. L'intervalle minimal entre les sauvegardes planifiées est de 10 minutes.

  6. Dans la section Règle de conservation, procédez comme suit :

    1. Définissez le nombre de jours de conservation de la sauvegarde avant sa suppression automatique.
    2. Définissez le nombre de jours pendant lesquels les sauvegardes ne peuvent pas être supprimées.
    3. Pour verrouiller la règle de conservation, cliquez sur l'icône en forme de cadenas pour passer de l'état Désactivé à Activé.
  7. Dans la section Configurer le champ d'application et le chiffrement de la sauvegarde, procédez comme suit :

    1. Sélectionnez le champ d'application du plan de sauvegarde :

      • Cliquez sur Cluster complet (y compris tous les espaces de noms) pour sauvegarder l'ensemble des ressources de l'espace de noms dans la sauvegarde.
      • Cliquez sur Espaces de noms sélectionnés dans ce cluster pour choisir les espaces de noms que vous souhaitez inclure dans le plan de sauvegarde.
      • Cliquez sur Applications protégées sélectionnées dans ce cluster pour ajouter des ressources en spécifiant l'espace de noms et le nom de l'application.
    2. Cochez la case Secrets pour inclure les ressources Secret Kubernetes.

    3. Cochez la case Données de volume persistant si vous souhaitez que les données de volume soient conservées dans votre sauvegarde. Si vous choisissez d'ignorer les données de volume, vous ne pouvez pas les restaurer lors de la restauration. Toutefois, vous disposez de deux options pour choisir les données de volume lors de la restauration : Provisionner de nouveaux volumes ou Réutiliser des volumes existants.

    4. Pour activer le chiffrement CMEK, vous devez d'abord accorder l'accès aux clés CMEK appropriées (consultez la page À propos du chiffrement CMEK).

      1. Cochez la case Utiliser une clé de chiffrement gérée par le client pour sélectionner une clé.
  8. Vérifiez les informations du plan de sauvegarde, puis cliquez sur Créer un plan.

Terraform

Créer une ressource google_gke_backup_backup_plan

resource "google_gke_backup_backup_plan" "basic" {
   name = "BACKUP_PLAN"
   cluster = google_container_cluster.CLUSTER.id
   location = "LOCATION"
   retention_policy {
     backup_retain_days = 7
   }
   backup_schedule {
     cron_schedule = "17 3 * * *"
   }
   backup_config {
     include_volume_data = true
     include_secrets = true
     all_namespaces = true
   }
}

Remplacez les éléments suivants :

  • BACKUP_PLAN : nom du plan de sauvegarde que vous souhaitez créer.
  • CLUSTER : nom de votre ressource google_container_cluster.
  • LOCATION : région dans laquelle vous souhaitez stocker les sauvegardes.

Pour en savoir plus, consultez la section gke_backup_backup_plan.

Afficher un plan de sauvegarde

Affichez un plan de sauvegarde et ses informations en utilisant gcloud CLI ou la console Google Cloud.

gcloud

Pour répertorier tous les plans de sauvegarde du projet et de la région, exécutez la commande suivante :

gcloud beta container backup-restore backup-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 backup-plans list.

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

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

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

Console

Suivez les instructions ci-dessous pour afficher un plan de sauvegarde 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 sauvegarde.

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

  5. Cliquez sur l'onglet Détails pour afficher les informations relatives au plan.

Mettre à jour un plan de sauvegarde

Vous pouvez modifier les informations du plan de sauvegarde, telles que sa description, son champ d'application, son mode de sauvegarde, son chiffrement ou son calendrier de sauvegarde. Vous pouvez également modifier la règle de conservation du plan de sauvegarde, telle que la durée de conservation des sauvegardes ou la période pendant laquelle les sauvegardes ne peuvent pas être supprimées.

Mettez à jour un plan de sauvegarde en utilisant gcloud CLI ou la console Google Cloud.

gcloud

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

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

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

Console

Suivez les instructions ci-dessous pour mettre à jour un plan de sauvegarde 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 sauvegarde.

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

  5. Cliquez sur l'onglet Détails pour modifier les informations relatives au plan.

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

Suspendre une planification de sauvegarde

Vous pouvez suspendre votre planification de sauvegarde. Lorsque la planification est suspendue, les sauvegardes automatiques ne sont pas créées. Vous pouvez toujours créer des sauvegardes manuellement.

gcloud

Pour suspendre une planification de sauvegarde, exécutez la commande suivante :

gcloud beta container backup-restore backup-plans update BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --paused

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

Console

Suivez les instructions ci-dessous pour suspendre une planification de sauvegarde 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 sauvegarde.

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

  5. Cliquez sur Suspendre la planification, puis sur Suspendre la planification dans la boîte de dialogue de confirmation.

Supprimer un plan de sauvegarde

Vous pouvez supprimer un plan de sauvegarde à l'aide de gcloud CLI ou de la console Google Cloud. Vous ne pouvez pas supprimer un plan de sauvegarde contenant des sauvegardes.

gcloud

Pour supprimer une sauvegarde, exécutez la commande suivante :

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

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

Console

Suivez les instructions ci-dessous pour supprimer un plan de sauvegarde 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 sauvegarde.

  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 sauvegarde, puis cliquez sur Supprimer le plan de sauvegarde dans la boîte de dialogue de confirmation.

Étape suivante