Questa pagina descrive come creare un repository di backup per i carichi di lavoro del cluster in Google Distributed Cloud (GDC) air-gapped.
Un repository di backup rappresenta una posizione di archiviazione compatibile per i backup. Un repository di backup viene utilizzato anche per archiviare i record di backup, piani di backup, piani di ripristino e ripristini.
Prima di iniziare
Per creare un repository di backup, devi disporre di quanto segue:- Endpoint compatibile: il nome di dominio completo del sito di archiviazione degli oggetti.
- Nome bucket: il nome del bucket, che si trova nello stato della risorsa personalizzata del bucket GDC.
- Accesso al bucket : autorizzazioni configurate per il bucket di archiviazione degli oggetti.
- Identità del servizio: un account di servizio
per gestire le interazioni API. Sostituisci la variabile
SA_NAMEin queste istruzioni con il nome del account di servizio che utilizzi per accedere all'archiviazione degli oggetti.
Richiedi ruoli IAM
Contatta l'amministratore IAM dell'organizzazione per richiedere il seguente ruolo nel tuo progetto:
- Amministratore backup cluster dell'organizzazione (
organization-cluster-backup-admin): crea, recupera, elenca, monitora ed elimina le risorse di backup, come i piani di backup e ripristino nei cluster utente.
Crea un repository
Crea un repository utilizzando la console GDC o l'API.
Console
- Accedi alla console GDC.
- Nel menu di navigazione, fai clic su Backup per cluster. Assicurati che non sia selezionato alcun progetto nel selettore di progetti.
- Fai clic su Repository > Crea repository.
- Inserisci un nome per il repository. La descrizione è facoltativa.
- Nel campo Endpoint URI S3, inserisci un endpoint contenente il nome di dominio completo del sito di archiviazione degli oggetti. Ad esempio,
https://storagegrid.zone.DOMAIN.SUFFIX:PORT. - Nel campo Nome bucket, inserisci il nome completo del bucket, che si trova nello stato della risorsa personalizzata del bucket GDC.
- Nel campo Regione bucket, inserisci la regione in cui è stato creato il bucket.
- Nell'elenco ID chiave di accesso, inserisci l'ID chiave di accesso del secret del bucket.
- Nel campo Chiave di accesso, inserisci la chiave di accesso del secret del bucket.
- Fai clic su Crea.
API
Per utilizzare le API di backup e ripristino, devi configurare una risorsa personalizzata ClusterBackupRepository valida e fornire le credenziali richieste.
Devi anche utilizzare un'identità di servizio, spesso definita service account , per creare repository con l'API.
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 annotare il nome del secret restituito dal comando e di utilizzarlo come valore
SECRET_NAMEquando crei la risorsa personalizzataClusterBackupRepository.Sostituisci quanto segue:
PROJECT_NAME: il nome del progetto.SA_NAME: il nome del account di servizio utilizzato per accedere all'archiviazione degli oggetti.
Per ottenere i dettagli del bucket, come il nome di dominio completo e gli endpoint, estrai i valori
fullyQualifiedNameezonalEndpointsdall'output:kubectl get buckets -n PROJECT_NAME BUCKET_NAME -o yamlAggiungi una risorsa personalizzata
ClusterBackupRepositoryper utilizzare queste credenziali e applica la nuova risorsa al server API di gestione. I repository di backup hanno ambito cluster:apiVersion: backup.gdc.goog/v1 kind: ClusterBackupRepository metadata: name: CLUSTER_BACKUP_REPOSITORY namespace: PROJECT_NAME spec: secretReference: namespace: PROJECT_NAME name: SECRET_NAME endpoint: END_POINT type: "S3" s3Options: bucket: BUCKET_FQDN region: REGION forcePathStyle: FORCE_PATH_STYLE importPolicy: IMPORT_POLICYSostituisci quanto segue:
CLUSTER_BACKUP_REPOSITORY: il nome del repository di backup del cluster.PROJECT_NAME: il nome del progetto.SA_NAME: il nome del account di servizio utilizzato per accedere all'archiviazione degli 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 valoretrueofalse.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 puoi 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 ci sono restrizioni sulla frequenza con cui puoi utilizzare un repository di backup comeReadOnly.
Policy di importazione del repository di backup
Tutti i cluster devono avere almeno un repository ReadWrite per utilizzare correttamente le funzionalità di backup e ripristino. I repository ReadOnly sono facoltativi, non hanno limiti e vengono utilizzati per ottenere visibilità sugli altri backup dei cluster per i ripristini tra cluster.
I repository ReadOnly non possono essere utilizzati come posizioni di archiviazione per backup aggiuntivi o per piani di backup all'interno del cluster in cui sono stati importati.
L'importazione di un repository come ReadWrite rivendica il repository per quel cluster, impedendo ad altri cluster di importare lo stesso repository come ReadWrite. Dopo aver importato un repository ReadWrite, tutti i record dei backup, dei piani di backup e dei ripristini precedenti in quel repository vengono importati nel cluster di destinazione come risorse personalizzate locali.
L'importazione di un repository come ReadOnly non rivendica il repository, ma importa solo i backup, i piani di backup, i ripristini e i piani di ripristino. I piani di backup nei repository di sola lettura non pianificano i backup, ma esistono per fornire visibilità sui piani di backup esistenti nel cluster da cui stai importando. La rimozione di un repository ReadOnly pulisce tutte le risorse importate dal cluster e non ha alcun effetto sulle risorse nella posizione di archiviazione, poiché non si verificano operazioni di scrittura nell'archiviazione degli oggetti per i repository di sola lettura.
Quando un repository ReadWrite viene rimosso dal cluster:
- Tutte le risorse personalizzate locali associate a quel repository, come backup e ripristini, vengono rimosse dal cluster corrente.
- La rivendicazione del cluster sul repository viene rimossa, consentendo a un altro cluster di utilizzare il repository come
ReadWrite. Tuttavia, queste risorse non vengono rimosse dall'endpoint di archiviazione.