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
- Connectez-vous à la console GDC.
- Dans le menu de navigation, cliquez sur Sauvegarde pour les machines virtuelles > Dépôts.
- Cliquez sur Créer un dépôt.
- Saisissez un nom de dépôt et une description facultative.
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éeBucket, exécutez la commande suivante :kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.endpoint'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
Bucketen exécutant la commande suivante :kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.fullyQualifiedName'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'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.
Cliquez sur Créer.
API
Créez une ressource personnalisée BackupRepository à l'aide de vos identifiants S3.
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.
Pour obtenir des informations sur le bucket, comme le nom de domaine complet et les points de terminaison, extrayez les valeurs
fullyQualifiedNameetzonalEndpointsde la sortie :kubectl get buckets -n PROJECT_NAME BUCKET_NAME -o yamlCréez un
BackupRepositorydans 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_POLICYRemplacez 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 commandekubectl get secrets.ENDPOINT: nom de domaine complet du système de stockage, par exemplehttps://objectstorage.google.gdch.test. Pour le champtype, seule la valeurS3est acceptée.BUCKET_FQDN: nom complet du bucket.REGION: région dans laquelle le bucket a été créé.FORCE_PATH_STYLE: utilisez le champforcePathStylepour forcer les URL de style chemin d'accès pour les objets. La valeur de ce champ doit êtretrueoufalse.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.
BackupRepositorycrée une ressourceBackupRepositoryen lecture/écriture sur le serveur de l'API Management portant le même nom.