Questa pagina descrive come creare un repository di backup per le macchine virtuali (VM) in Google Distributed Cloud (GDC) air-gapped.
Prima di creare backup o snapshot, devi definire almeno un repository di backup che possa essere condiviso tra più backup o snapshot. Un repository di backup indica al sistema di backup dove archiviare o recuperare i backup. I repository di backup per le VM sono limitati al server API Management.
Prima di iniziare
Prima di creare un repository di backup, devi eseguire il provisioning dello spazio di archiviazione sottostante e configurare le autorizzazioni necessarie, tra cui:
- Un bucket di archiviazione di oggetti e un endpoint compatibile con S3.
- Un account di servizio con accesso concesso al bucket e le relative credenziali S3.
I ruoli IAM necessari:
- Amministratore dei backup dell'organizzazione: gestisce le risorse di backup, come i piani di backup e ripristino nei cluster utente.
- Visualizzatore secret: visualizza i secret Kubernetes nei progetti.
Chiedi all'amministratore IAM dell'organizzazione di concederti i ruoli Amministratore backup organizzazione (
organization-backup-admin) e Visualizzatore secret (secret-viewer). Per ulteriori informazioni, consulta la sezione Definizioni dei ruoli.
Crea un repository di backup
Crea un repository utilizzando la console GDC o l'API.
Console
- Accedi alla console GDC.
- Nel menu di navigazione, fai clic su Backup for Virtual Machines > Repository.
- Fai clic su Crea repository.
- Inserisci un nome del repository e una descrizione facoltativa.
Nel campo Endpoint URI S3, inserisci un endpoint con il nome di dominio completo del tuo sito di archiviazione degli oggetti, ad esempio
https://objectstorage.ORG.ZONE.DOMAIN.SUFFIX:PORT. Ad esempio:https://objectstorage.org-1.zone1.google.gdch.test. Per ottenere il valore dalla risorsa personalizzataBucket, esegui questo comando:kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.endpoint'Nel campo Nome bucket, inserisci il nome di dominio completo del bucket. Puoi ottenere questo nome dalla pagina Dettagli bucket nella console GDC oppure, per ottenere il valore dalla risorsa personalizzata
Bucket, esegui il seguente comando:kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.fullyQualifiedName'Nel campo Regione bucket, inserisci la regione in cui è stato creato il bucket e ottieni il valore dalla risorsa personalizzata del bucket eseguendo il seguente comando:
kubectl get Bucket BUCKET_NAME -n NAMESPACE -o json | jq -r '.status.region'Nei campi ID chiave di accesso e Chiave di accesso, inserisci l'ID chiave di accesso e la chiave di accesso segreta. Per saperne di più su come ottenere queste credenziali, consulta Concedere e ottenere l'accesso al bucket di archiviazione.
Fai clic su Crea.
API
Crea una risorsa personalizzata BackupRepository utilizzando le tue credenziali S3.
Recupera il nome del secret che contiene le credenziali 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'Assicurati di registrare il nome del secret restituito dal comando e di utilizzarlo come
SECRET_NAMEnel passaggio successivo.Sostituisci quanto segue:
PROJECT_NAME: il nome del progetto.SA_NAME: il nome del account di servizio utilizzato per accedere all'archiviazione di oggetti.
Per ottenere i dettagli del bucket, come FQDN ed endpoint, estrai i valori
fullyQualifiedNameezonalEndpointsdall'output:kubectl get buckets -n PROJECT_NAME BUCKET_NAME -o yamlCrea un
BackupRepositoryall'interno del server API di gestione: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_POLICYSostituisci quanto segue:
REPOSITORY_NAME: il nome del repository di backup.PROJECT_NAME: il nome del progetto.SA_NAME: il nome del account di servizio utilizzato per accedere all'archiviazione di oggetti.SECRET_NAME: il nome del secret restituito dal comandokubectl get secrets.ENDPOINT: il nome di dominio completo del sistema di archiviazione, ad esempiohttps://objectstorage.google.gdch.test. Per il campotype, è supportato solo il valoreS3.BUCKET_FQDN: il nome completo del bucket.REGION: la regione in cui è stato creato il bucket.FORCE_PATH_STYLE: utilizza il campoforcePathStyleper forzare gli URL in stile percorso per gli oggetti. Questo campo deve avere un valore pari atrueofalse.IMPORT_POLICY: imposta uno dei seguenti valori:ReadWrite: questo repository può essere utilizzato per pianificare o creare backup, piani di backup e ripristini.ReadOnly: questo repository può essere utilizzato solo per importare e visualizzare i backup. Non è possibile creare nuovi backup o risorse in questo repository, ma i ripristini possono utilizzare e fare riferimento ai backup di sola lettura per il ripristino. Non esiste alcuna limitazione alla frequenza con cui un repository di backup può essere utilizzato come ReadOnly.
BackupRepositorycrea una risorsaBackupRepositoryabilitata alla lettura/scrittura nel server dell'API Management con lo stesso nome.