Planificar un conjunto de restauraciones

En esta página se describe cómo crear un plan de restauración de Backup for GKE, que se usa para restaurar tus copias de seguridad en Google Kubernetes Engine (GKE).

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 administradores para que usen estas configuraciones. Estos usuarios pueden restaurar una copia de seguridad de forma rápida e independiente cuando se produce un incidente. Por ejemplo, los datos persistentes pueden dañarse por una actualización de software en una aplicación implementada, lo que provoca que el espacio de nombres de la aplicación se encuentre en un estado no válido, lo que requiere una restauración.

Copia de seguridad de GKE no admite la restauración de una copia de seguridad de un proyecto en otro. Solo puedes restaurar copias de seguridad en clústeres del mismo proyecto del que proceden. Los planes de restauración no pueden hacer referencia a planes de copia de seguridad de otro proyecto.

Durante la restauración, puede aplicar reglas de transformación de forma opcional. Estas reglas se usan para buscar un conjunto de recursos y sustituir el valor actual de un atributo de esos recursos por un valor nuevo.

Espacios de nombres gestionados

La función de copia de seguridad de GKE no restaura los espacios de nombres gestionados. Estos espacios de nombres se omiten de forma silenciosa durante la restauración. La lista de espacios de nombres gestionados incluye los siguientes:

  • cnrm-system
  • configconnector-operator-system
  • gatekeeper-system
  • gke-connect
  • gke-gmp-system
  • gmp-public
  • kube-node-lease
  • kube-public
  • kube-system
  • Espacios de nombres con la siguiente etiqueta:
    • Tecla: addonmanager.kubernetes.io/mode
    • Valor: Reconcile o EnsureExists

Antes de empezar

Planifica un conjunto de copias de seguridad.

Roles obligatorios

Para obtener los permisos que necesitas para crear y gestionar un plan de restauración, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de restauración de la función de copia de seguridad de GKE (roles/gkebackup.restoreAdmin), que es un subconjunto del rol Administrador de la función de copia de seguridad de GKE (roles/gkebackup.admin) en tu proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Crear un plan de restauración

Puedes crear un plan de restauración para tus copias de seguridad con la CLI de Google Cloud o la Google Cloud consola.

gcloud

Para crear un plan de restauración, ejecuta el siguiente comando:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=RESTORE_LOCATION \
    --backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=NAMESPACED_RESOURCE_RESTORE_MODE \
    --all-namespaces \
    --cluster-resource-conflict-policy=CLUSTER_RESOURCE_CONFLICT_POLICY \
    --cluster-resource-scope-selected-group-kinds=CLUSTER_RESOURCE_SCOPE \
    --volume-data-restore-policy=VOLUME_DATA_RESTORE_POLICY

Haz los cambios siguientes:

  • RESTORE_PLAN: el nombre del plan de restauración que quieras crear.
  • PROJECT_ID: el ID de tu proyecto de Google Cloud.
  • RESTORE_LOCATION: la región de cálculo del recurso, por ejemplo, us-central1. Consulta Información sobre las ubicaciones de recursos. La ubicación debe ser la misma región en la que se encuentra el clúster de destino.
  • BACKUP_PLAN: la fuente de las copias de seguridad que se pueden restaurar con este plan de restauración:
    • projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME Asegúrate de que el plan de copia de seguridad esté en el mismo proyecto que el nuevo plan de restauración.
  • CLUSTER: el nombre del clúster de destino al que quieras restaurar la copia de seguridad:

    • Clústeres regionales: projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
    • Clústeres zonales: projects/PROJECT_ID/locations/ZONE/clusters/CLUSTER_NAME
  • NAMESPACED_RESOURCE_RESTORE_MODE: define cómo gestionar los conflictos de tiempo de restauración de los recursos espaciados por nombre. Los recursos con espacio de nombres siempre se restauran en grupos, ya sea por espacio de nombres o por ProtectedApplication. Utiliza una de estas opciones:

    • merge-skip-on-conflict: omite los recursos concretos que estén en conflicto.
    • merge-replace-volume-on-conflict: omite los recursos individuales en conflicto, pero sustituye los datos del volumen persistente subyacente.
    • merge-replace-on-conflict: sustituye los recursos individuales en conflicto y los datos del volumen persistente subyacente.
    • delete-and-restore: Si el clúster de destino contiene el mismo grupo de recursos que se va a restaurar en el clúster, el grupo de recursos se elimina antes de que se restauren los nuevos recursos.
    • fail-on-conflict: Si algún grupo de recursos de los que se va a restaurar desde una copia de seguridad ya existe en el clúster de destino, la restauración fallará.
  • --all-namespaces: restaura todos los recursos con espacio de nombres de la copia de seguridad. También puedes especificarlo:

    • --excluded-namespaces con una lista de espacios de nombres como NAMESPACE1,NAMESPACE2,... para restaurar todos los espacios de nombres, excepto los de la lista.
    • --selected-applications con una lista de ProtectedApplications como NAMESPACE1/APP1,NAMESPACE2/APP2,... para restaurar.
    • --selected-namespaces con una lista de espacios de nombres como NAMESPACE1,NAMESPACE2,... para restaurar.
    • --no-namespaces no restaura ningún recurso con espacio de nombres de la copia de seguridad. Esta opción no se puede especificar junto con --cluster-resource-scope-no-group-kinds.

    Debes especificar una de estas opciones al crear un plan de restauración.

  • CLUSTER_RESOURCE_CONFLICT_POLICY: define cómo gestionar los conflictos de tiempo de restauración de los recursos de clúster seleccionados. Usa una de estas opciones:

    • use-existing-version: Si los recursos que se están restaurando ya existen en el clúster de destino, Copia de seguridad de GKE los conserva.

    • use-backup-version: si los recursos que se van a restaurar ya existen en el clúster de destino, la función de copia de seguridad de GKE los sustituye por los nuevos recursos de la copia de seguridad.

  • --cluster-resource-scope-selected-group-kinds: (Opcional) restaura los recursos del clúster con los tipos de grupo seleccionados en el formato Group/Kind. CLUSTER_RESOURCE_SCOPE define GroupKinds de los recursos del clúster que se van a restaurar. Por ejemplo, apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass.

    También puedes especificarlo:

    • cluster-resource-scope-all-group-kinds para seleccionar todos los tipos de grupos de recursos de clúster que quieras restaurar.
    • cluster-resource-scope-excluded-group-kinds con una lista de tipos de grupos de recursos de clúster para restaurar todos los tipos de grupos de recursos de clúster, excepto los de la lista.
    • cluster-resource-scope-no-group-kinds. Esta opción no se puede especificar junto con --no-namespaces.

    Si no especificas ninguna de estas opciones, no se restaurará ningún recurso del clúster.

  • VOLUME_DATA_RESTORE_POLICY: define cómo se rellenan los datos de los volúmenes restaurados. Utiliza una de estas opciones:

    • restore-volume-data-from-backup: los nuevos PVs se restaurarán con los datos de copia de seguridad del volumen correspondiente en la copia de seguridad.

    • reuse-volume-handle-from-backup: los PVs se aprovisionarán previamente con el identificador de volumen del PV original de la copia de seguridad.

    • no-volume-data-restoration: los PVs no se restaurarán. La restauración solo restaura los PVCs seleccionados y espera que el controlador de almacenamiento correspondiente aprovisione dinámicamente los PVs en blanco o los vincule a los PVs aprovisionados previamente creados fuera de banda.

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

Crear un plan de restauración para todos los espacios de nombres

El siguiente comando crea un plan de restauración para restaurar todos los espacios de nombres y recursos del clúster:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=fail-on-conflict \
    --all-namespaces \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-all-group-kinds \
    --volume-data-restore-policy=restore-volume-data-from-backup

Crear un plan de restauración para revertir un espacio de nombres

El siguiente comando crea un plan de restauración para revertir el espacio de nombres my-ns a partir de una copia de seguridad:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=delete-and-restore \
    --selected-namespaces=my-ns \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-selected-group-kinds=apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass \
    --volume-data-restore-policy=restore-volume-data-from-backup

Crea un plan de restauración para revertir un ProtectedApplication y volver a conectar los volúmenes originales

El siguiente comando crea un plan de restauración para revertir la aplicación protegida my-ns/my-app y volver a conectar los volúmenes originales:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=delete-and-restore \
    --selected-applications=my-ns/my-app \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-no-group-kinds \
    --volume-data-restore-policy=reuse-volume-handle-from-backup

Crear un plan de restauración para restaurar solo los recursos del clúster

El siguiente comando crea un plan de restauración para restaurar todos los recursos del clúster:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=fail-on-conflict \
    --no-namespaces \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-all-group-kinds

Consola

Sigue estas instrucciones para crear un plan de restauración en la Google Cloud consola:

  1. Ve a la página Google Kubernetes Engine en la Google Cloud consola.

    Ir a Google Kubernetes Engine

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

  3. Haz clic en Crear un plan de restauración.

  4. En la sección Name your plan and choose a cluster (Ponle un nombre a tu plan y elige un clúster), completa lo siguiente y haz clic en Next (Siguiente):

    1. Introduce el nombre del plan de restauración y una descripción opcional.
    2. Elige un plan de copias de seguridad para un clúster que corresponda a las copias de seguridad que quieras restaurar.
    3. 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), haz lo siguiente y haz clic en Next (Siguiente):

    1. Elige los espacios de nombres que quieras restaurar:

      • Haz clic en Todos los recursos espaciados por nombre para restaurar todos los recursos espaciados por nombre de la copia de seguridad.
        1. En la sección Excepciones, haz clic en Añadir espacios de nombres para excluir cualquier espacio de nombres de la copia de seguridad.
      • Haga clic en Recursos espaciados por nombre seleccionados para especificar los espacios de nombres de la copia de seguridad que quiere restaurar.
      • Haga clic en Aplicaciones protegidas seleccionadas para añadir recursos especificando el espacio de nombres y el nombre de la aplicación.
      • Haz clic en No namespaced resources (Sin recursos espaciados por nombre) para no restaurar ningún recurso espaciado por nombre.
    2. Elige cómo gestionar los conflictos si se selecciona algún recurso espaciado por nombre:

      • Haz clic en Combinar (sin eliminar datos) si ya existe un recurso específico y quieres omitir la restauración del recurso desde la copia de seguridad.
      • Haz clic en Combinar y sustituir volumen (destructivo) si ya existe un recurso específico. De esta forma, se omitirá la restauración de ese recurso, pero se sustituirá el volumen persistente subyacente mediante la política de restauración de datos de volumen. El volumen de sustitución de combinación consigue la restauración solo de datos.
      • Haz clic en Combinar y sustituir (destructivo) si ya existe un recurso específico. Sustituye ese recurso por el de la copia de seguridad y los datos de volumen asociados siguiendo la política de restauración de datos de volumen.
      • Haga clic en Fallo por conflicto (no destructivo) para que se produzca un error en la restauración si alguno de los espacios de nombres de la copia de seguridad que se van a restaurar ya existe en el clúster de destino.
      • 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 de volumen y haz clic en Siguiente:

      • 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.
      • 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.
      • 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), completa lo siguiente y haz clic en Next (Siguiente):

    1. Elige los tipos de grupos que quieras restaurar:

      • Haz clic en Todos los recursos con permisos de clúster para restaurar todos los recursos con permisos de clúster de la copia de seguridad.
        1. En la sección Excepciones, haga clic en Añadir tipos de grupo para excluir cualquier recurso con ámbito de clúster de la copia de seguridad.
      • Haz clic en Recursos del clúster seleccionados para especificar los recursos del clúster de la copia de seguridad que quieres restaurar. apiextensions.k8s.io/CustomResourceDefinition y storage.k8s.io/StorageClass están seleccionados de forma predeterminada. Haz clic en Añadir tipo de grupo para añadir más recursos con ámbito de clúster.
      • Haz clic en Ningún recurso con permisos de clúster para no restaurar ningún recurso del clúster.
    2. Elige cómo quieres gestionar los conflictos si se selecciona algún recurso del clúster:

      • Haz clic en Mantener recursos en el clúster de destino para omitir un recurso si ya existe en el clúster de destino.
      • Haz clic en Reemplazar 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 transformación, complete lo siguiente y haga clic en Siguiente:

    1. Haz clic en Añadir regla e introduce una descripción (opcional).
    2. Si quiere restringir las reglas de transformación a los recursos que cumplan condiciones específicas, haga lo siguiente en la sección Especificar condiciones y acciones de los recursos:
      1. Haz clic en Condición de espacios de nombres y escribe una lista de espacios de nombres para que coincidan los recursos de esos espacios.
      2. Haga clic en Condición de tipo de grupo, escriba el tipo de grupo de la API y, a continuación, el tipo de objeto. Esto asocia un grupo de APIs a los recursos de esos tipos.
      3. Haz clic en Condición de ruta JSON y escribe la ruta JSON que identifica los campos de los recursos coincidentes a los que se aplica la transformación.
      4. Escriba el nuevo valor que sustituirá al valor actual de los atributos coincidentes o marque la casilla Reemplazar valores específicos (mediante una expresión regular). A continuación, escribe el patrón con el que quieras comparar el valor actual de esos recursos.
    3. Haz clic en Guardar cambios.
  8. Revisa los detalles del plan de restauración y haz clic en Crear plan.

Ver un plan de restauración

Para ver un plan de restauración y sus detalles, puedes usar la interfaz de línea de comandos gcloud o laGoogle Cloud consola.

gcloud

Para enumerar todos los planes de restauración de un proyecto y una ubicación, ejecuta el siguiente comando:

gcloud beta container backup-restore restore-plans list \
    --project=PROJECT_ID \
    --location=LOCATION

En el caso de los comandos list, puedes proporcionar - como valor de cualquier parámetro, excepto PROJECT_ID. El valor - actúa como un comodín. El valor - es el predeterminado de cualquier parámetro si no especificas una opción de línea de comandos o no defines una propiedad.

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

Para ver los detalles de un plan de restauración, ejecuta el siguiente comando:

gcloud beta container backup-restore restore-plans describe RESTORE_PLAN \
     --project=PROJECT_ID \
     --location=LOCATION

Consola

Sigue estas instrucciones para ver un plan de restauración y sus detalles en la consola de Google Cloud :

  1. Ve a la página Google Kubernetes Engine en la Google Cloud consola.

    Ir a Google Kubernetes Engine

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

  3. Haga clic en la pestaña Restaurar planes.

  4. Despliega el plan de copia de seguridad y haz clic en el nombre del plan de restauración.

  5. Haga clic en la pestaña Detalles para verlos.

Actualizar un plan de restauración

Actualiza un plan de restauración y sus detalles mediante la CLI de gcloud.

gcloud

Para actualizar un plan de restauración (por ejemplo, añadiendo una nueva descripción), ejecuta el siguiente comando:

gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --description=DESCRIPTION

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

Consola

Sigue estas instrucciones para actualizar un plan de restauración en la consola: Google Cloud

  1. Ve a la página Google Kubernetes Engine en la Google Cloud consola.

    Ir a Google Kubernetes Engine

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

  3. Haga clic en la pestaña Restaurar planes.

  4. Haga clic en el nombre del plan de restauración.

  5. Haga clic en la pestaña Detalles.

  6. Haz clic en Editar para editar una sección del plan y, a continuación, en Guardar cambios.

Eliminar un plan de restauración

Puedes eliminar un plan de restauración con la CLI de gcloud o laGoogle Cloud consola. Si eliminas un plan de restauración, también se eliminarán los planes de restauración secundarios.

gcloud

Para eliminar un plan de restauración, ejecuta el siguiente comando:

gcloud beta container backup-restore restore-plans delete RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION

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

Consola

Sigue estas instrucciones para eliminar un plan de restauración en la consola de Google Cloud :

  1. Ve a la página Google Kubernetes Engine en la Google Cloud consola.

    Ir a Google Kubernetes Engine

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

  3. Haga clic en la pestaña Restaurar planes.

  4. Despliega el clúster y haz clic en el nombre del plan.

  5. Haz clic en Eliminar plan.

  6. Escribe el nombre del plan de restauración y, a continuación, haz clic en Eliminar plan de restauración en el cuadro de diálogo de confirmación.

Siguientes pasos