Planificar un conjunto de restauraciones

En esta página se describe cómo crear, editar y eliminar un plan de restauración en Google Distributed Cloud (GDC) air-gapped.

Los planes de restauración son escenarios de restauración preconfigurados para una línea de copias de seguridad correspondiente. Los planes de restauración pueden asignar permisos a los usuarios con el rol Creador de copias de seguridad para que usen estas configuraciones.

Los creadores de copias de seguridad pueden restaurar una copia de seguridad de forma rápida e independiente cuando se produce un incidente. Por ejemplo, una actualización de software en una aplicación implementada puede dañar los datos persistentes, lo que provoca que el espacio de nombres de la aplicación se encuentre en un estado no válido y requiera una restauración.

Durante la restauración, puede aplicar opcionalmente un conjunto de reglas de sustitución que se utilizan para buscar un conjunto de recursos y sustituir el valor actual de un atributo de esos recursos por un nuevo valor. Por ejemplo, una regla de sustitución puede cambiar el espacio de nombres de los recursos de los que se ha creado una copia de seguridad durante la restauración para migrar una carga de trabajo de un espacio de nombres a otro.

Antes de empezar

Para crear un plan de restauración, debes tener lo siguiente:

  • El rol de identidad y acceso necesario:

    • Administrador de copias de seguridad de clústeres de usuarios: gestiona recursos de copia de seguridad, como copias de seguridad y planes de restauración, en clústeres de usuarios. Pídele al administrador de gestión de identidades y accesos de tu organización que te conceda el rol de administrador de copias de seguridad de clústeres de usuarios (user-cluster-backup-admin). Para obtener más información, consulta Definiciones de roles.
    • Si tienes el rol Application Operator, pide a tu administrador, que tiene privilegios de administrador de copias de seguridad de clústeres de usuarios, que cree un plan de restauración.

Crear un plan de restauración

Crea un plan de restauración mediante la consola de GDC o la API.

Consola

  1. Inicia sesión en la consola de GDC.
  2. En el menú de navegación, haga clic en Backup for Clusters (Copia de seguridad de clústeres).
  3. Haz clic en Crear plan de restauración.
  4. En la sección Pasos básicos del plan de restauración, sigue estos pasos y haz clic en Siguiente:
    1. En Nombre del plan de restauración, introduce el nombre del plan de restauración.
    2. (Opcional) En Descripción del plan de restauración, escriba una descripción del plan de restauración.
    3. En la lista Clúster de origen, elija el clúster de origen del plan de restauración.
    4. En la lista Proyecto, elige el proyecto del plan de restauración.
    5. Selecciona el proyecto que está asociado al clúster de origen.
    6. En el campo Plan de copia de seguridad, elige un plan de copia de seguridad para un clúster que corresponda a las copias de seguridad que quieras restaurar.
    7. En el campo Clúster de destino, elige el clúster de destino en el que quieras restaurar la copia de seguridad.
  5. En la sección Choose namespaced resources (Elegir recursos con espacio de nombres), sigue estos pasos y haz clic en Next (Siguiente):
    1. Elige los espacios de nombres que quieras restaurar:
      1. Haz clic en Todos los recursos espaciados por nombre para restaurar todos los recursos espaciados por nombre de la copia de seguridad.
      2. Haga clic en Recursos espaciados por nombre seleccionados para especificar los espacios de nombres de la copia de seguridad que quiere restaurar.
        1. Haz clic en Editar espacios de nombres del clúster y, a continuación, en Añadir espacio de nombres del clúster para introducir un espacio de nombres.
      3. Haz clic en Aplicaciones protegidas seleccionadas para añadir recursos especificando el espacio de nombres y el nombre de la aplicación.
    2. Elige cómo quieres gestionar los conflictos:
      1. Haga clic en Fail on conflict (non-destructive) (Fallo en caso de conflicto [no destructivo]) para que se produzca un error en la restauración si ya existen en el clúster de destino espacios de nombres de los que se va a restaurar una copia de seguridad.
      2. Haz clic en Rollback (destructive) (Restauración (destructiva)) para eliminar los espacios de nombres que ya tengas antes de restaurar los nuevos espacios de nombres si ya existen en el clúster de destino espacios de nombres que se van a restaurar a partir de una copia de seguridad.
    3. Elige cómo quieres restaurar los datos del volumen:
      1. Haz clic en Provision new volumes and restore volume data from backup (Aprovisionar nuevos volúmenes y restaurar datos de volumen a partir de una copia de seguridad) para restaurar los datos de volumen de la copia de seguridad en un nuevo disco persistente.
      2. Haz clic en No restaurar datos de volumen para aprovisionar un nuevo volumen persistente. Si el clúster de destino contiene un volumen persistente sin enlazar que cumple los requisitos de PersistentVolumeClaim, el clúster se enlaza al volumen.
      3. Haz clic en Reutilizar volúmenes que contengan tus datos para no restaurar los datos de la copia de seguridad del volumen. Los PersistentVolumeClaims están vinculados a volúmenes que hacen referencia a discos persistentes.
  6. Opcional: En la sección Choose cluster-scoped resources (Elegir recursos con ámbito de clúster), sigue estos pasos y haz clic en Next (Siguiente):
    1. Haz clic en No restaurar recursos con permisos de clúster para dejar la versión actual del recurso sin modificar.
    2. Haz clic en Restaurar recursos con permisos de clúster por GroupKind para restaurar estos recursos.
      1. Haz clic en Editar GroupKinds para añadir más recursos con ámbito de clúster. Introduzca el grupo de APIs y el tipo de objeto para que coincidan los recursos de esos tipos.
    3. Haz clic en Conservar recursos actuales para crear recursos si no existen en el clúster de destino.
    4. Haz clic en Sobrescribir recursos en el clúster de destino para eliminar un recurso si ya existe en el clúster de destino y restaurar la copia de la copia de seguridad.
  7. Opcional: En la sección Añadir reglas de sustitución, sigue estos pasos y haz clic en Siguiente:
    1. Haz clic en Añadir regla nueva.
    2. En el cuadro Espacios de nombres del clúster, escribe una lista de espacios de nombres para que coincidan los recursos de esos espacios.
    3. Para añadir GroupKinds, haz clic en Add GroupKind (Añadir GroupKind) e introduce el grupo de APIs y el tipo de objeto para que coincidan con los recursos de esos tipos.
    4. En el campo Ruta JSON, escribe la ruta JSON que identifica los campos de los recursos coincidentes a los que se aplica la sustitución.
    5. En el campo Patrón de valor original, escriba el patrón original para compararlo con el nuevo valor.
    6. En el campo Valor nuevo, escriba el nuevo valor que sustituirá al valor actual de los atributos coincidentes.
    7. Haz clic en Guardar.
  8. Haz clic en Crear.

API

Crea un ClusterRestorePlan recurso personalizado para planificar restauraciones a partir de un recurso ClusterBackupPlan. ClusterRestorePlan asigna el conjunto exacto de recursos y espacios de nombres que puede restaurar un creador de copias de seguridad. A continuación, se muestra un ejemplo de ClusterRestorePlan:

apiVersion: backup.gdc.goog/v1
kind: ClusterRestorePlan
metadata:
  name: restoreplan-sample
  namespace:  PROJECT_NAME
spec:
  targetCluster:
    targetClusterType: UserCluster
    targetClusterName:
      kind: "Cluster"
      name: "user-vm-1"
  description: "restores test clusters"
  clusterBackupPlanName: "backupplan-sample"
  clusterRestoreConfig:
    volumeDataRestorePolicy: RestoreVolumeDataFromBackup
    clusterResourceConflictPolicy: UseBackupVersion
    namespacedResourceRestoreMode: DeleteAndRestore
    namespacedResourceRestoreScope:
      selectedNamespaces:
        namespaces: ["nginx-2"]
    clusterBackupRepositoryRef: "backup-repository"
    substitutionRules:
      - newValue: "newhippo"
        originValuePattern: game-config-2
        target:
          groupKinds:
          jsonPath: '{.metadata.name}'
          namespaces:
          - nginx-2
      - newValue: "hippo"
        originValuePattern: game-config
        target:
          groupKinds:
          jsonPath: '{.metadata.name}'
          namespaces:
          - nginx-2

Sustituye PROJECT_NAME por el nombre de tu proyecto de GDC.

En este ejemplo se usan los siguientes valores:


Valor

Atributo

Descripción
clusterBackupPlanName Nombre del ClusterBackupPlan que se va a restaurar. El ClusterBackupPlan debe estar en el mismo espacio de nombres que el ClusterRestorePlan.
targetClusterName Nombre del clúster de origen de un proyecto al que está asociado este plan.
description Descripción proporcionada por el usuario sobre el propósito del ClusterRestorePlan.
clusterRestoreConfig Configuración del proceso de restauración.
clusterBackupRepositoryRef Especifica el repositorio en el que se almacenarán los recursos de Restore. Este repositorio puede ser diferente del repositorio del que se ha creado la copia de seguridad. El repositorio debe ser un repositorio ReadWrite del clúster.
clusterResourceConflictPolicy Especifica el comportamiento para gestionar los conflictos de recursos del clúster, como si el recurso ya existe en el clúster. Especifica una de las siguientes opciones:
  • UseExistingVersion: no sobrescribe los recursos durante un conflicto.
  • UseBackupVersion: elimina y vuelve a crear los recursos del clúster durante el conflicto. Se trata de una opción peligrosa que puede provocar una pérdida de datos no intencionada si se usa de forma inadecuada. Por ejemplo, si se elimina una definición de recurso personalizado, Kubernetes eliminará todos los recursos personalizados de ese tipo.
volumeDataRestorePolicy Especifica una de estas opciones:
  • NoVolumeDataRestoration: no se restauran los PV ni los PVC.
  • RestoreVolumeDataFromBackup: los nuevos PVs y PVCs se crean a partir de la copia de seguridad.
  • ReuseVolumeHandleFromBackup: crea PVs, pero intenta restaurar los PVCs con sus PVs originales. Se usa para restaurar la copia de seguridad en el mismo clúster del que se tomó.
namespacedResourceRestoreMode Gestiona la situación en la que los conjuntos de recursos con espacio de nombres que se van a restaurar ya existen en el clúster de destino. Especifica una de estas opciones:
  • DeleteAndRestore: Cuando se encuentran recursos de nivel superior en conflicto, como Namespaces o ProtectedApplications, primero se elimina el recurso en conflicto y todos sus recursos referenciados antes de restaurar los recursos de Backup. Utilice este modo solo cuando quiera restaurar una parte de un clúster a un estado anterior.
  • FailOnConflict: Si se encuentran recursos de nivel superior en conflicto, como el recurso Namespace o ProtectedApplication, al principio del proceso de restauración o durante el mismo, se produce un error en Restore.
  • MergeSkipOnConflict: si se encuentran recursos en conflicto durante el proceso de restauración, este modo omite la restauración de los recursos en conflicto de la copia de seguridad y continúa restaurando otros recursos que no estén en el clúster.
  • MergeReplaceOnConflict: Si se encuentran recursos en conflicto durante el proceso de restauración, este modo sustituye los recursos en conflicto de la copia de seguridad y continúa restaurando otros recursos que no están en el clúster.
namespacedResourceRestoreScope Especifica qué Namespaces o ProtectedApplications se pueden restaurar.
  • selectedApplications asocia una aplicación protegida a esta restauración.
  • selectedNamespaces asocia un espacio de nombres a esta restauración.
substitutionRules Reglas para sustituir valores en los recursos de Kubernetes de los que se ha creado una copia de seguridad durante la restauración. Si la lista está vacía, no se produce ninguna sustitución. Las reglas de sustitución se aplican de forma secuencial en el orden definido. Este orden es importante, ya que los cambios que realice una regla pueden afectar a la lógica de coincidencia de la regla siguiente.

Una vez que se ha creado una ClusterRestorePlan, los usuarios con el rol Creador de copias de seguridad pueden restaurar copias de seguridad manualmente.

Ver un plan de restauración

Para ver un plan de restauración mediante la consola de GDC, sigue estos pasos:

  1. Inicia sesión en la consola de GDC.
  2. En el menú de navegación, haga clic en Backup for Clusters (Copia de seguridad de clústeres).
  3. Haz clic en Seleccionar proyecto para elegir una organización o un proyecto en función de tu rol:
    1. Administrador de copias de seguridad de clústeres de usuarios: selecciona una organización para ver todos los planes de restauración de una organización o un proyecto para ver todos los planes de restauración de un proyecto.
    2. Creador de copias de seguridad: selecciona un proyecto para ver todos los planes de restauración de un proyecto.
  4. Haga clic en la pestaña Restaurar planes.
  5. Haga clic en un plan de restauración de la lista para ver sus detalles.

Editar un plan de restauración

Si el repositorio de copias de seguridad asociado al plan de restauración que quieres editar tiene un valor en el campo Clúster vinculado(solo lectura) cuando se crea el plan de restauración, se crea dos veces. El plan de restauración se propaga a los clústeres de lectura y escritura y de solo lectura.

Cuando editas el plan de restauración de un repositorio de copias de seguridad que tiene configurados clústeres de lectura y escritura y de solo lectura, debes editar el plan de restauración que tenga el TARGET CLUSTER configurado en el clúster de lectura y escritura.

Para editar un plan de restauración con la consola de GDC, sigue estos pasos:

  1. Inicia sesión en la consola de GDC.
  2. En el menú de navegación, haga clic en Backup for Clusters (Copia de seguridad de clústeres).
  3. Haz clic en Seleccionar proyecto para elegir una organización o un proyecto en función de tu rol:
    1. Administrador de copias de seguridad de clústeres de usuarios: selecciona una organización para ver todos los planes de restauración de una organización o un proyecto para ver todos los planes de restauración de un proyecto.
    2. Creador de copias de seguridad: selecciona un proyecto para ver todos los planes de restauración de un proyecto.
  4. Haga clic en la pestaña Restaurar planes.
  5. Haz clic en el nombre del plan de restauración que quieras editar.
  6. Haga clic en la pestaña Configuración del plan para ver los campos que se pueden modificar.
  7. Haga clic en el icono Editar situado junto a Recursos con espacio de nombres para editar ese recurso:

    1. En la sección Elegir recursos espaciados por nombre, seleccione los recursos espaciados por nombre de la copia de seguridad que quiera restaurar:

      1. Selecciona Todos los recursos espaciados por nombre para restaurar todos los recursos espaciados por nombre de la copia de seguridad.
      2. Selecciona Recursos espaciados por nombre seleccionados para restaurar los recursos de los espacios de nombres seleccionados en la copia de seguridad:

        1. Selecciona Editar espacios de nombres del clúster para seleccionar el espacio de nombres del clúster.
        2. En el campo Espacio de nombres del clúster 1, introduce el nombre del espacio de nombres.
        3. Haz clic en el botón Save (Guardar).
      3. Selecciona Aplicaciones protegidas seleccionadas para restaurar los recursos de las aplicaciones protegidas seleccionadas en la copia de seguridad:

        1. Seleccione Editar aplicaciones protegidas para seleccionar el espacio de nombres y la aplicación protegida.
        2. En el campo Espacio de nombres 1, introduce el nombre del espacio de nombres.
        3. En el campo Aplicación protegida 1, introduce el nombre de la aplicación protegida.
        4. Haz clic en el botón Save (Guardar).
  8. Haga clic en el icono Editar situado junto a Recursos con ámbito de clúster para editar ese recurso:

    1. Opcional: En la sección Choose cluster-scoped resources (Elegir recursos con ámbito de clúster), selecciona los recursos con ámbito de clúster que quieras restaurar especificando los grupos de APIs y GroupKinds, y decide cómo se deben resolver los conflictos:

      1. Selecciona No restaurar recursos con permisos de clúster para quitar los recursos con permisos de clúster del proceso de restauración.
      2. Selecciona Restaurar recursos con permisos de clúster por GroupKind para restaurar los recursos por el GroupKind especificado:

      3. Para especificar un GroupKind, haz clic en el botón Editar GroupKind.

      4. Haz clic en el botón Add GroupKind (Añadir GroupKind).

      5. Introduce el nombre del GroupKind.

      6. Haz clic en el botón Save (Guardar).

    2. En la sección Gestión de conflictos, determina qué acción se debe llevar a cabo si el recurso ya existe en el clúster de destino:

      1. Selecciona Preserve existing resources (Conservar recursos) para crear recursos si aún no existen en el clúster.
      2. Selecciona Sobrescribir recursos para eliminar los recursos que ya existan y sustituirlos por el recurso restaurado.
    3. Haz clic en el botón Guardar para confirmar los cambios.

  9. En la sección Reglas de sustitución, haga clic en el botón Añadir regla para añadir una regla de sustitución:

    1. En el campo Espacios de nombres del clúster, introduce el nombre del espacio de nombres del clúster al que quieras aplicar esta regla de sustitución.
    2. Haz clic en el botón Add GroupKind (Añadir GroupKind) para aplicar esta regla a un objeto GroupKind concreto.
    3. En el campo Ruta JSON, introduce la ruta al atributo de recurso que quieras sustituir en formato JSON.
    4. En el campo Patrón del valor original, introduzca una expresión regular que coincida con el valor original del atributo.
    5. En el campo Valor nuevo, introduzca el valor que se sustituirá por el campo de destino. Si este campo está en blanco, el campo de destino se elimina del recurso.
    6. Haga clic en el botón Guardar para completar la creación de la nueva regla de sustitución.
  10. En la sección Reglas de sustitución, haga clic en el icono de edición para editar una regla de sustitución.

  11. En la sección Reglas de sustitución, haga clic en el icono de eliminar para eliminar una regla de sustitución.

Eliminar un plan de restauración

RestorePlans se puede eliminar a través de la consola de GDC o eliminando el recurso directamente del servidor de la API de Kubernetes. De esta forma, se eliminan los artefactos de RestorePlan asociados del almacenamiento de objetos.

Consola

  1. Inicia sesión en la consola de GDC.
  2. En el menú de navegación, haga clic en Backup for Clusters (Copia de seguridad de clústeres).
  3. Haz clic en Seleccionar proyecto para elegir una organización o un proyecto en función de tu rol:
    1. Administrador de copias de seguridad de clústeres de usuarios: selecciona una organización para ver todos los planes de restauración de una organización o un proyecto para ver todos los planes de restauración de un proyecto.
    2. Creador de copias de seguridad: selecciona un proyecto para ver todos los planes de restauración de un proyecto.
  4. Haga clic en la pestaña Restaurar planes.
  5. Haga clic en el nombre del plan de restauración que quiera eliminar.
  6. Haz clic en el botón Eliminar.
  7. Escribe el nombre del plan de restauración en el campo.
  8. Haz clic en el botón Eliminar para confirmar la eliminación de este plan de restauración.

API

Elimina el recurso del plan de restauración:

kubectl delete clusterRestoreplan RESTORE_PLAN_NAME -n NAMESPACE

Haz los cambios siguientes:

  • RESTORE_PLAN_NAME: el nombre del plan de restauración.
  • NAMESPACE: el espacio de nombres que contiene el plan de restauración.

Siguientes pasos