Crea un ripristino granulare

Questo documento descrive come creare un ripristino granulare per un backup in Google Distributed Cloud (GDC) con air gap.

La funzionalità di ripristino granulare consente di ripristinare un sottoinsieme di risorse da un backup. Questa funzionalità offre la flessibilità di perfezionare l'ambito di ripristino definito nel piano di ripristino.

Prima di iniziare

Assicurati di avere un backup esistente. Per saperne di più, consulta Pianifica un set di backup.

Richiedi ruoli IAM

Per creare un ripristino granulare per un backup, chiedi all'amministratore dell'organizzazione IAM o all'amministratore del progetto IAM di concederti uno dei seguenti ruoli:

  • User Cluster Backup Admin (user-cluster-backup-admin): crea, recupera, elenca, controlla, aggiorna, applica patch ed elimina risorse di backup come i piani di backup e ripristino nei cluster utente. Contatta l'amministratore dell'organizzazione IAM per richiedere questo ruolo.

  • Backup Creator (backup-creator): crea, recupera, elenca, controlla, aggiorna, applica patch ed elimina le richieste di backup manuale e di ripristino manuale. Contatta l'amministratore del progetto IAM per richiedere questo ruolo.

Crea un ripristino granulare

Per creare un ripristino con un filtro granulare, segui questi passaggi:

  1. Crea i filtri di ripristino granulare. Puoi utilizzare il seguente esempio YAML.

    inclusionFilters:
      - groupKind:
          group: foo.io
          kind: Bar
        name: name1
        namespace: ns1
    exclusionFilters:
      - labels:
          key1: value1
          key2: value2
    
  2. Crea una risorsa personalizzata ManualRestoreRequest per pianificare i ripristini da un Backups esistente. Ecco un esempio di ManualRestoreRequest:

    apiVersion: backup.gdc.goog/v1
    kind: ManualRestoreRequest
    metadata:
      name: RESTORE_NAME
      namespace: PROJECT_NAMESPACE
    spec:
      restoreName: RESTORE_NAME
      restorePlanName: RESTORE_PLAN
      backupName: BACKUP_NAME
      filter:
        FINE_GRAINED_RESTORE_FILTERS
    

Sostituisci quanto segue:

  • RESTORE_NAME: il nome del ripristino che vuoi creare.
  • PROJECT_NAMESPACE: il nome del progetto GDC.
  • RESTORE_PLAN: il nome del piano di ripristino da cui deriva questo ripristino.
  • BACKUP_NAME: il backup da ripristinare. Questo backup deve essere associato al piano di backup a cui fa riferimento il piano di ripristino. Per saperne di più, consulta Pianifica un insieme di ripristini.
  • FINE_GRAINED_RESTORE_FILTER: i filtri di ripristino granulari. Per alcuni esempi, consulta Esempi di filtri di ripristino granulari.

Esempi di filtri di ripristino granulare

I seguenti esempi sono forniti nel formato YAML utilizzato da Google Cloud CLI.

Ripristina una singola risorsa con ambito dello spazio dei nomi

Questo esempio ripristina una risorsa ConfigMap con il nome nginx-vars nello spazio dei nomi webserver, utilizzando il ripristino granulare inclusionFilters per selezionare la risorsa. Se vuoi scegliere le risorse nel gruppo principale, utilizza una stringa vuota per il campo group.

filter:
  inclusionFilters:
  - groupKind:
      kind: ConfigMap
    name: nginx-vars
    namespace: webserver

Escludi una singola risorsa con ambito cluster

Questo esempio ripristina tutte le risorse disponibili, ad eccezione di una risorsa groupKind con il nome sc1, utilizzando il ripristino granulare exclusionFilters per escludere la risorsa.

filter:
  exclusionFilters:
  - groupKind:
      group: storage.k8s.io
      kind: StorageClass
    name: sc1

Ripristina le risorse con due etichette

Questo esempio ripristina le risorse che hanno entrambe le etichette key1:value1 e key2:value2, utilizzando il ripristino granulare inclusionFilters per selezionare le risorse.

filter:
  inclusionFilters:
  - labels:
      key1: value1
      key2: value2

Escludi tutte le risorse di alcuni GroupKind

Questo esempio ripristina tutte le risorse disponibili, ad eccezione delle risorse groupKind di ConfigMap e storage.k8s.io/StorageClass, utilizzando il ripristino granulare exclusionFilters per escludere questi due GroupKind.

filter:
  exclusionFilters:
  - groupKind:
      kind: ConfigMap
  - groupKind:
      group: storage.k8s.io
      kind: StorageClass

Passaggi successivi