Habilitar la restauración pormenorizada


En esta página se describe cómo seleccionar recursos para restaurarlos con mayor granularidad.

Información general

La función de restauración granular te permite restaurar un subconjunto de recursos a partir de una copia de seguridad. La función de restauración detallada ofrece la flexibilidad de refinar el ámbito de restauración definido en el plan de restauración principal. Si el ámbito de restauración detallado no se solapa con el ámbito original definido en el plan de restauración principal, no se restaurará ningún recurso.

La función de restauración pormenorizada se puede habilitar en planes de restauración con modos de gestión de conflictos a nivel de recurso individual:

  • Combinar salto
  • Combinar y reemplazar
  • Combinar y reemplazar el volumen

Si tus planes de restauración usan modos de gestión de conflictos a nivel de espacio de nombres o ProtectedApplication, como Fail on conflict o Rollback, y quieres habilitar la restauración granular, debes actualizar tu plan de restauración para usar los modos admitidos o crear un nuevo plan de restauración. Para obtener más información sobre los modos de restauración, consulta Gestionar conflictos de recursos durante la restauración.

Para usar la restauración granular, puedes definir una o varias condiciones de filtro en los filtros de inclusión y exclusión. Puedes seleccionar un subconjunto específico de recursos de la copia de seguridad para restaurarlos o restaurar todos los recursos excepto un subconjunto. Puedes definir filtros de inclusión y de exclusión simultáneamente. Si se usan filtros de inclusión, solo se restaurarán los recursos que coincidan con esos filtros. Si se usan filtros de exclusión, se excluyen los recursos coincidentes del proceso de restauración. Si se especifican filtros de inclusión y de exclusión, los de inclusión se aplican primero y, después, los de exclusión. Esto significa que los filtros de exclusión tienen prioridad sobre los de inclusión. Si no se especifica ningún filtro, la restauración se realiza en todo el ámbito definido en el plan de restauración principal.

Hay cuatro atributos opcionales al crear una condición de filtro:

  • GroupKind: el grupo y el tipo de la API de Kubernetes del recurso
  • Espacio de nombres: el espacio de nombres de los recursos con permisos de espacio de nombres
  • Nombre de recurso: el nombre del recurso
  • Etiquetas: los pares clave-valor para seleccionar recursos en función de las etiquetas de Kubernetes.

Puede usar una combinación de los cuatro atributos anteriores para definir una condición de filtro. Si se especifica más de un atributo, las relaciones entre ellos se consideran AND. Se selecciona un recurso si coincide con todos los atributos definidos en la condición del filtro. También puedes proporcionar varias condiciones de filtro al mismo tiempo. Las relaciones entre las diferentes condiciones de filtro son OR. Se selecciona un recurso si coincide con alguna condición de filtro de todos los proporcionados.

Antes de empezar

Planificar un conjunto de restauraciones.

Crear una restauración con un filtro de restauración detallado

gcloud

  1. Crea un archivo YAML o JSON con filtros de restauración detallados. Puedes usar el siguiente ejemplo de YAML.

    exclusionFilters:
    - groupKind:
        resourceGroup: foo.io
        resourceKind: Bar
      name: name1
      namespace: ns1
    inclusionFilters:
    - labels:
        key1: value1
        key2: value2
    
  2. Crea una restauración con el archivo de filtro de restauración detallada que has creado.

    gcloud beta container backup-restore restores create RESTORE \
        --project=PROJECT_ID \
        --location=LOCATION \
        --restore-plan=RESTORE_PLAN \
        --backup=BACKUP \
        --filter-file=FILTER_FILE
    

    Haz los cambios siguientes:

    • RESTORE: el nombre de la restauración que quieras crear.
    • PROJECT_ID: el ID de tu proyecto de Google Cloud .
    • LOCATION: la región de cálculo del plan de restauración principal.
    • RESTORE_PLAN: el nombre del plan de restauración principal del que deriva esta restauración.
    • BACKUP: la copia de seguridad que se va a restaurar. Debe estar en el plan de copia de seguridad al que hace referencia el plan de restauración principal como projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN/backups/BACKUP.

    • FILTER_FILE: la ruta de tus filtros de restauración detallada.

    Para ver la lista completa de opciones, consulta la gcloud beta container backup-restore restores create documentación.

Consola

Sigue estas instrucciones para crear una restauración granular en la consola: Google Cloud

  1. En la Google Cloud consola, ve a la página Google Kubernetes Engine.

    Ir a Google Kubernetes Engine

  2. En el menú de navegación, haga clic en Backup for GKE.

  3. Haz clic en la pestaña Copias de seguridad.

  4. En la lista de copias de seguridad, selecciona la que quieras restaurar y haz clic en Configurar una restauración.

  5. Elige un plan de restauración de la lista de planes que se aplican a esta copia de seguridad.

  6. Escribe un nombre para la restauración y, si quieres, una descripción.

  7. Marca la casilla Habilitar restauración granular.

  8. En la sección Filtros de inclusión o Filtros de exclusión, haga clic en Añadir condición de filtro.

  9. En Restaurar condición del filtro, define la condición y haz clic en Guardar cambios.

  10. Si quieres añadir más condiciones, vuelve a hacer clic en Añadir condiciones de filtro.

  11. Haz clic en Restaurar.

Ejemplos de archivos de filtros de restauración detallada

Los siguientes ejemplos se proporcionan en el formato YAML que usa la CLI de Google Cloud o las instrucciones paso a paso para la consola. Google Cloud

Restaurar un solo recurso con permisos de espacio de nombres

En este ejemplo, se restaura un recurso de tipo ConfigMap con el nombre nginx-vars en el espacio de nombres webserver. Para seleccionar el recurso, se usa la restauración detallada InclusionFilters. Si quieres elegir recursos del grupo core, usa una cadena vacía para resourceGroup.

gcloud

  inclusionFilters:
  - groupKind:
      resourceKind: ConfigMap
    name: nginx-vars
    namespace: webserver

Consola

  1. Habilita la restauración granular como hiciste en el procedimiento Crear una restauración con un filtro de restauración granular.
  2. En la sección Filtros de inclusión, haga clic en Añadir condición de filtro.
  3. En el campo Nombre del recurso, introduce nginx-vars.
  4. En el campo Namespace, introduce webserver.
  5. En el campo Object kind (Tipo de objeto), introduce ConfigMap.
  6. Haz clic en Guardar cambios.

Excluir un solo recurso con permisos de clúster

En este ejemplo se restauran todos los recursos disponibles, excepto un GroupKind storage.k8s.io/StorageClass con el nombre sc1, mediante la restauración detallada ExclusionFilters para excluir el recurso.

gcloud

exclusionFilters:
- groupKind:
    resourceGroup: storage.k8s.io
    resourceKind: StorageClass
  name: sc1

Consola

  1. Habilita la restauración granular como hiciste en el procedimiento Crear una restauración con un filtro de restauración granular.
  2. En la sección Filtros de exclusión, haga clic en Añadir condición de filtro.
  3. En el campo Nombre del recurso, introduce sc1.
  4. En el campo API group (Grupo de APIs), introduce storage.k8s.io.
  5. En el campo Object kind (Tipo de objeto), introduce StorageClass.
  6. Haz clic en Guardar cambios.

Restaurar recursos con dos etiquetas

En este ejemplo se restauran los recursos que tienen las etiquetas key1:value1 y key2:value2. Para seleccionar los recursos, se usa la restauración detallada InclusionFilters.

gcloud

inclusionFilters:
- labels:
    key1: value1
    key2: value2

Consola

  1. Habilita la restauración granular como hiciste en el procedimiento Crear una restauración con un filtro de restauración granular.
  2. En la sección Filtros de inclusión, haga clic en Añadir condición de filtro.
  3. En la sección Etiquetas:

    1. Haz clic en Añadir etiqueta.
    2. En el campo Clave 1, introduce key1.
    3. En el campo Valor 1, introduce value1.
    4. Haz clic en Añadir etiqueta.
    5. En el campo Clave 2, introduce key2.
    6. En el campo Valor 2, introduce value2.
  4. Haz clic en Guardar cambios.

Excluir todos los recursos de algunos GroupKinds

En este ejemplo se restauran todos los recursos disponibles, excepto GroupKind ConfigMap y storage.k8s.io/StorageClass, mediante la restauración detallada ExclusionFilters para excluir estos dos GroupKinds.

gcloud

exclusionFilters:
- groupKind:
    resourceKind: ConfigMap
- groupKind:
    resourceGroup: storage.k8s.io
    resourceKind: StorageClass

Consola

  1. Habilita la restauración granular como hiciste en el procedimiento Crear una restauración con un filtro de restauración granular.
  2. En la sección Filtros de exclusión, haga clic en Añadir condición de filtro.
    1. En el campo Object kind (Tipo de objeto), introduce ConfigMap.
    2. Haz clic en Guardar cambios.
  3. En la sección Filtros de exclusión, haga clic en Añadir condición de filtro.
    1. En el campo API group (Grupo de APIs), introduce storage.k8s.io.
    2. En el campo Object kind (Tipo de objeto), introduce StorageClass.
    3. Haz clic en Guardar cambios.