Crea un ripristino granulare

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

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 ulteriori informazioni, consulta Pianificare un insieme di backup.

Richiedere i ruoli IAM

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

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

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

Creare un ripristino granulare

Per creare un ripristino con un filtro granulare:

  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 tuo 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 ulteriori informazioni, consulta Pianificare un insieme di ripristini.
  • FINE_GRAINED_RESTORE_FILTER: i filtri di ripristino granulare. Per esempi, consulta Esempi di filtri di ripristino granulare esempi.

Esempi di filtri di ripristino granulare

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

Ripristinare una singola risorsa con ambito di spazio dei nomi

Questo esempio ripristina una risorsa ConfigMap con il nome nginx-vars nello spazio dei nomi webserver, utilizzando inclusionFilters di ripristino granulare 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

Escludere una singola risorsa con ambito cluster

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

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

Ripristinare le risorse con due etichette

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

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

Escludere 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 exclusionFilters di ripristino granulare per escludere questi due GroupKind.

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

Passaggi successivi