Créer un dépôt de sauvegarde

Cette page explique comment créer un dépôt de sauvegarde pour les machines virtuelles (VM) dans Google Distributed Cloud (GDC) air-gapped.

Avant de créer des sauvegardes ou des instantanés, vous devez définir au moins un dépôt de sauvegarde pouvant être partagé entre plusieurs sauvegardes ou instantanés. Un dépôt de sauvegarde indique au système de sauvegarde où stocker ou récupérer les sauvegardes. Les dépôts de sauvegarde pour les VM sont limités au serveur de l'API Management.

Avant de commencer

Avant de créer un dépôt de sauvegarde, vous devez provisionner l'espace de stockage sous-jacent et configurer les autorisations nécessaires, y compris :

  • Un bucket de stockage d'objets et un point de terminaison compatible S3.
  • Un compte de service disposant d'un accès au bucket et de ses identifiants S3.
  • Rôles IAM nécessaires :

    • Administrateur des sauvegardes de l'organisation : gère les ressources de sauvegarde telles que les plans de sauvegarde et de restauration dans les clusters d'utilisateur.
    • Lecteur de secrets : permet d'afficher les secrets Kubernetes dans les projets.

    Demandez à votre administrateur IAM de l'organisation de vous attribuer les rôles Administrateur des sauvegardes de l'organisation (organization-backup-admin) et Lecteur de secrets (secret-viewer). Pour en savoir plus, consultez Définitions des rôles.

Créer un dépôt de sauvegarde

Créez un dépôt à 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 machines virtuelles > Dépôts.
  3. Cliquez sur Créer un dépôt.
  4. Saisissez un nom de dépôt et une description facultative.
  5. Dans le champ Point de terminaison URI S3, saisissez un point de terminaison avec le nom de domaine complet de votre site de stockage d'objets, tel que https://objectstorage.ORG.ZONE.DOMAIN.SUFFIX:PORT. Par exemple, https://objectstorage.org-1.zone1.google.gdch.test. Pour obtenir la valeur de la ressource personnalisée Bucket, exécutez la commande suivante :

    kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.endpoint'
    
  6. Dans le champ Nom du bucket, saisissez le nom de domaine complet du bucket. Vous pouvez obtenir ce nom sur la page Détails du bucket de la console GDC. Vous pouvez également obtenir la valeur à partir de la ressource personnalisée Bucket en exécutant la commande suivante :

    kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.fullyQualifiedName'
    
  7. Dans le champ Région du bucket, saisissez la région dans laquelle le bucket a été créé et obtenez la valeur à partir de l'exécution de la ressource personnalisée du bucket en exécutant la commande suivante :

    kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.region'
    
  8. Dans les champs ID de clé d'accès et Clé d'accès, saisissez l'ID de clé d'accès et la clé d'accès secrète. Pour en savoir plus sur l'obtention de ces identifiants, consultez Accorder et obtenir l'accès aux buckets de stockage.

  9. Cliquez sur Créer.

API

Créez une ressource personnalisée BackupRepository à l'aide de vos identifiants S3.

  1. Obtenez le nom du secret contenant les identifiants S3 :

    export PROJECT_NAME=PROJECT_NAME
    export SA_NAME=SA_NAME
    kubectl get secrets --namespace $PROJECT_NAME -o json | jq -r --arg USER_NAME "${SA_NAME:?}" '.items[] | select( (.metadata.annotations."object.gdc.goog/subject"==$USER_NAME)) | .metadata.name'
    

    Veillez à noter le nom du secret renvoyé par la commande et à l'utiliser comme SECRET_NAME à l'étape suivante.

    Remplacez les éléments suivants :

    • PROJECT_NAME : nom de votre projet.
    • SA_NAME : nom du compte de service utilisé pour accéder au stockage d'objets.
  2. Pour obtenir des informations sur le bucket, comme le nom de domaine complet et les points de terminaison, extrayez les valeurs fullyQualifiedName et zonalEndpoints de la sortie :

    kubectl get buckets -n PROJECT_NAME BUCKET_NAME -o yaml
    
  3. Créez un BackupRepository dans le serveur de l'API Management :

    apiVersion: backup.gdc.goog/v1
    kind: BackupRepository
    metadata:
      name: REPOSITORY_NAME
    spec:
      secretReference:
        namespace: PROJECT_NAME
        name: SECRET_NAME
      endpoint: ENDPOINT
      type: "S3"
      s3Options:
        bucket: BUCKET_FQDN
        region: REGION
        forcePathStyle: FORCE_PATH_STYLE
      importPolicy: IMPORT_POLICY
    

    Remplacez les éléments suivants :

    • REPOSITORY_NAME : nom du dépôt de sauvegarde.
    • PROJECT_NAME : nom de votre projet.
    • SA_NAME : nom du compte de service utilisé pour accéder au stockage d'objets.
    • SECRET_NAME : nom du secret renvoyé par la commande kubectl get secrets.
    • ENDPOINT : nom de domaine complet du système de stockage, par exemple https://objectstorage.google.gdch.test. Pour le champ type, seule la valeur S3 est acceptée.
    • BUCKET_FQDN : nom complet du bucket.
    • REGION : région dans laquelle le bucket a été créé.
    • FORCE_PATH_STYLE : utilisez le champ forcePathStyle pour forcer les URL de style chemin d'accès pour les objets. La valeur de ce champ doit être true ou false.
    • IMPORT_POLICY : définissez cette option sur l'une des valeurs suivantes :
      • ReadWrite : ce dépôt peut être utilisé pour planifier ou créer des sauvegardes, des plans de sauvegarde et des restaurations.
      • ReadOnly : ce dépôt ne peut être utilisé que pour importer et afficher des sauvegardes. Vous ne pouvez pas créer de sauvegardes ni de ressources dans ce dépôt, mais les restaurations peuvent utiliser et référencer des sauvegardes en lecture seule. Il n'y a aucune restriction quant à la fréquence d'utilisation d'un dépôt de sauvegarde en lecture seule.

    BackupRepository crée une ressource BackupRepository en lecture/écriture sur le serveur de l'API Management portant le même nom.

Étapes suivantes