Aggiungere un repository di backup

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_NAME in 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

  1. Accedi alla console GDC.
  2. Nel menu di navigazione, fai clic su Backup per cluster. Assicurati che non sia selezionato alcun progetto nel selettore di progetti.
  3. Fai clic su Repository > Crea repository.
  4. Inserisci un nome per il repository. La descrizione è facoltativa.
  5. 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.
  6. Nel campo Nome bucket, inserisci il nome completo del bucket, che si trova nello stato della risorsa personalizzata del bucket GDC.
  7. Nel campo Regione bucket, inserisci la regione in cui è stato creato il bucket.
  8. Nell'elenco ID chiave di accesso, inserisci l'ID chiave di accesso del secret del bucket.
  9. Nel campo Chiave di accesso, inserisci la chiave di accesso del secret del bucket.
  10. 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.

  1. 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_NAME quando crei la risorsa personalizzata ClusterBackupRepository.

    Sostituisci quanto segue:

    • PROJECT_NAME: il nome del progetto.
    • SA_NAME: il nome del account di servizio utilizzato per accedere all'archiviazione degli oggetti.
  2. Per ottenere i dettagli del bucket, come il nome di dominio completo e gli endpoint, estrai i valori fullyQualifiedName e zonalEndpoints dall'output:

    kubectl get buckets -n PROJECT_NAME BUCKET_NAME -o yaml
    
  3. Aggiungi una risorsa personalizzata ClusterBackupRepository per 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_POLICY
    

    Sostituisci 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 comando kubectl get secrets.
    • ENDPOINT: il nome di dominio completo del sistema di archiviazione, ad esempio https://objectstorage.google.gdch.test. Per il campo type è supportato solo il valore S3.
    • BUCKET_FQDN: il nome completo del bucket.
    • REGION: la regione in cui è stato creato il bucket.
    • FORCE_PATH_STYLE: utilizza il campo forcePathStyle per forzare gli URL in stile percorso per gli oggetti. Questo campo deve avere un valore true o false.
    • 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 come ReadOnly.

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.

Passaggi successivi