Planifica un conjunto de restablecimientos


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

Los planes de restablecimiento son situaciones de restablecimiento preconfiguradas para una línea de copia de seguridad correspondiente. Los planes de restablecimiento pueden asignar permisos para que los administradores usen estas opciones de configuración. Esos usuarios pueden restablecer una copia de seguridad de manera independiente y rápida cuando se produce un incidente. Por ejemplo, los datos persistentes pueden estar dañados por una actualización de software en una aplicación implementada, lo que coloca el espacio de nombres de la aplicación en un estado no válido, lo que requiere un restablecimiento.

Durante el restablecimiento, puedes aplicar reglas de transformación de manera opcional, que se usan para hacer coincidir un conjunto de recursos y sustituir el valor actual de un atributo en esos recursos por un valor nuevo.

Antes de comenzar

Planifica un conjunto de copias de seguridad.

Roles obligatorios

Para obtener los permisos que necesitas para crear y administrar un plan de restablecimiento, pídele a tu administrador que te otorgue el rol de administrador de restablecimientos de Copia de seguridad para GKE (roles/gkebackup.restoreAdmin), que es un subconjunto del rol de IAM de administrador de Copia de seguridad para GKE (roles/gkebackup.admin) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

También puedes obtener los permisos necesarios a través de funciones personalizadas o cualquier otro rol predefinido.

Crea un plan de restablecimiento

Puedes crear un plan de restablecimiento para las copias de seguridad mediante Google Cloud CLI o la consola de Google Cloud.

gcloud

Para crear un plan de restablecimiento, ejecuta el siguiente comando:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --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

Reemplaza lo siguiente:

  • RESTORE_PLAN: El nombre del plan de restablecimiento que deseas crear.
  • PROJECT_ID es el ID de tu proyecto de Google Cloud.
  • LOCATION: Es la región de procesamiento del recurso, por ejemplo, us-central1. Consulta Acerca de las ubicaciones de los recursos. La ubicación debe ser la misma región en la que se encuentra el clúster de destino.
  • BACKUP_PLAN: Es la fuente de las copias de seguridad que se pueden restablecer con este plan de restablecimiento.
    • projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME
  • CLUSTER: Es el nombre del clúster de destino en el que deseas restablecer 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 controlar los conflictos de tiempo de restablecimiento para los recursos con espacio de nombres. Los recursos con espacio de nombres siempre se restablecen en grupos, ya sea por espacio de nombres o por ProtectedApplication. Usa una de estas opciones:

    • delete-and-restore: Cuando el clúster de destino contiene el mismo grupo de recursos que están destinados al restablecimiento en el clúster, el grupo existente se borra antes de que se restablezcan los recursos nuevos.
    • fail-on-conflict: Si ya existe un grupo de recursos destinado al restablecimiento desde una copia de seguridad en el clúster de destino, el restablecimiento fallará.
  • --all-namespaces: Restablece todos los recursos con espacio de nombres en la copia de seguridad. Como alternativa, puedes agregar las siguientes especificaciones:

    • --excluded-namespaces con una lista de espacios de nombres como NAMESPACE1,NAMESPACE2,... para restablecer todos los espacios de nombres, excepto los de la lista.
    • --selected-applications con una lista de ProtectedApplications como NAMESPACE1/APP1,NAMESPACE2/APP2,... para restablecerlas.
    • --selected-namespaces con una lista de espacios de nombres como NAMESPACE1,NAMESPACE2,... para restablecerlos.
    • --no-namespaces: Restablece todos los recursos con espacio de nombres en 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 cuando crees el plan de restablecimiento.

  • CLUSTER_RESOURCE_CONFLICT_POLICY: Define cómo controlar los conflictos en el tiempo de restablecimiento de los recursos del clúster seleccionados. Usa una de estas opciones:

    • use-existing-version: Si los recursos que se restablecen ya existen en el clúster de destino, la copia de seguridad para GKE conserva los recursos existentes.

    • use-backup-version: Si los recursos que se están restableciendo ya existen en el clúster de destino, la copia de seguridad para GKE reemplaza los recursos existentes por los nuevos de la copia de seguridad.

  • --cluster-resource-scope-selected-group-kinds: Restablece los recursos del clúster con los tipos de grupos seleccionados en el formato Group/Kind (opcional). CLUSTER_RESOURCE_SCOPE define GroupKinds de los recursos del clúster que se restablecerán. Por ejemplo, apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass.

    Como alternativa, puedes agregar las siguientes especificaciones:

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

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

  • VOLUME_DATA_RESTORE_POLICY: Define cómo se propagan los datos para los volúmenes restablecidos. Usa una de estas opciones:

    • restore-volume-data-from-backup: Los PV nuevos se restablecerán con los datos de copia de seguridad de volumen correspondientes en la copia de seguridad.

    • reuse-volume-handle-from-backup: Los PV se aprovisionarán de forma previa con el controlador de volumen del PV original en la copia de seguridad.

    • no-volume-data-restoration: No se restablecerán los PV. El restablecimiento solo restablece los PVC seleccionados y espera que el controlador de almacenamiento correspondiente aprovisione de manera dinámica los PV en blanco o los vincule a los PV preaprovisionados creados fuera de banda.

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

Crea un RestorePlan para todos los espacios de nombres

El siguiente comando crea un RestorePlan para restablecer todos los espacios de nombres y recursos del clúster:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --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

Crea un RestorePlan para revertir un espacio de nombres

El siguiente comando crea un RestorePlan para revertir el espacio de nombres my-ns de la copia de seguridad:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --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 RestorePlan para revertir ProtectedApplication y volver a conectar volúmenes originales

Con el siguiente comando, se crea un RestorePlan para revertir el my-ns/my-app de ProtectedApplication así volver a conectar los volúmenes originales:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --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

Crea un RestorePlan para restablecer solo los recursos del clúster

El siguiente comando crea un RestorePlan para restablecer todos los recursos del clúster:

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

Console

Usa las siguientes instrucciones para crear un plan de restablecimiento en la consola de Google Cloud:

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

    Ir a Google Kubernetes Engine

  2. En el menú de navegación, haz clic en Copia de seguridad para GKE.

  3. Haz clic en Crear un plan de restablecimiento.

  4. En la sección Asigna un nombre a tu plan y elige un clúster, sigue estos pasos y haz clic en Siguiente:

    1. Ingresa el nombre del plan de restablecimiento y la descripción opcional.
    2. Elige un plan de copia de seguridad para un clúster existente que corresponda a las copias de seguridad que deseas restablecer.
    3. Elige el clúster de destino en el que deseas restablecer la copia de seguridad.
  5. En la sección Elige recursos con espacios de nombres, sigue estos pasos y haz clic en Siguiente

    1. Elige los espacios de nombres que deseas restablecer:

      • Haz clic en Todos los recursos con espacios de nombres para restablecer todos los recursos con espacios de nombres en la copia de seguridad.
        1. Haz clic en Agregar espacios de nombres en la sección Excepciones para excluir cualquier espacio de nombres en la copia de seguridad.
      • Haz clic en Recursos con espacios de nombres seleccionados para especificar los espacios de nombres en la copia de seguridad que se restablecerán.
      • Haz clic en Aplicaciones protegidas seleccionadas para agregar recursos mediante la especificación del espacio de nombres y nombre de la aplicación.
      • Haz clic en Sin recursos con espacios de nombres para no restablecer ningún recurso con espacio de nombres.
    2. Elige cómo controlar los conflictos si se seleccionan recursos de espacios de nombres:

      • Haz clic en Falla debido a un conflicto (no destructivo) para hacer que falle el restablecimiento si algún espacio de nombres destinado al restablecimiento desde una copia de seguridad ya existe en el clúster de destino.
      • Haz clic en Revertir (destructivo) para borrar los espacios de nombres existentes antes de restablecer los nuevos espacios de nombres si ya existe en el clúster de destino algún espacio de nombres para el restablecimiento desde una copia de seguridad.
    3. Elige cómo restablecer los datos de volumen y haz clic en Siguiente:

      • Haz clic en Aprovisionar volúmenes nuevos y restablecer los datos de volumen desde la copia de seguridad para restablecer los datos de volumen desde la copia de seguridad en un disco persistente nuevo.
      • Haz clic en No restablecer los datos de volumen para aprovisionar un volumen persistente nuevo. Si el clúster de destino contiene un volumen persistente no vinculado que cumple con los requisitos de PersistentVolumeClaim, el clúster está vinculado al volumen.
      • Haz clic en Volver a usar volúmenes existentes que contienen tus datos para no restablecer los datos de la copia de seguridad del volumen. Cualquier PersistentVolumeClaims está vinculado a los volúmenes que hacen referencia a discos persistentes existentes.
  6. De forma opcional, en la sección Elige recursos con permisos de clúster, sigue estos pasos y haz clic en Siguiente:

    1. Elige qué tipos de grupos restablecer:

      • Haz clic en Todos los recursos con alcance de clúster para restablecer todos los recursos con alcance de clúster en la copia de seguridad.
        1. Haz clic en Agregar groupkinds en la sección Excepciones para excluir cualquier recurso con permiso de clúster en la copia de seguridad.
      • Haz clic en Recursos con permiso de clúster seleccionados para especificar los recursos con permiso de clúster en la copia de seguridad que se restablecerá. apiextensions.k8s.io/CustomResourceDefinition y storage.k8s.io/StorageClass están seleccionados de forma predeterminada. Haz clic en Agregar groupkind para agregar más recursos con permisos del clúster.
      • Haz clic en Sin recursos con permisos de clúster para elegir no restablecer ningún recurso de clúster.
    2. Elige cómo controlar los conflictos si se selecciona algún recurso con permiso de clúster:

      • Haz clic en Conservar recursos en el clúster de destino para omitir un recurso que ya existe en el clúster de destino.
      • Haz clic en Reemplazar recursos en el clúster de destino para borrar un recurso que ya existe en el clúster de destino y restablecer la copia desde la copia de seguridad.

  7. En la sección Agregar reglas de transformación, sigue estos pasos y haz clic en Siguiente (opcional):

    1. Haz clic en Agregar regla y, luego, ingresa una descripción opcional.
    2. Si deseas restringir las reglas de transformación a recursos que coinciden con condiciones específicas, haz lo siguiente en la sección Specify resource conditions and actions:
      1. Haz clic en Namespaces condition y escribe una lista de espacios de nombres para que coincidan con los recursos dentro de esos espacios de nombres.
      2. Haz clic en Groupkind condition, escribe el tipo de grupo de API y, luego, escribe el tipo de objeto. Esto hace coincidir un grupo de API con los recursos dentro de esos tipos.
      3. Haz clic en JSON path condition y escribe la ruta de JSON que identifica los campos dentro de los recursos coincidentes para los que se aplica la transformación.
      4. Escribe el valor nuevo que reemplaza el valor actual de los atributos coincidentes o selecciona la casilla de verificación Reemplazar valores específicos (con una expresión regular). Luego, escribe el patrón para comparar con el valor actual de esos recursos.
    3. Haz clic en Guardar cambios.
  8. Revisa los detalles del plan de restablecimiento y haz clic en Crear plan.

Visualiza un plan de restablecimiento

Puedes ver un plan de restablecimiento y sus detalles a través de gcloud CLI o la consola de Google Cloud.

gcloud

Para enumerar todos los planes de restablecimiento dentro del proyecto y la ubicación, ejecuta el siguiente comando:

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

Solo para los comandos list, puedes proporcionar - como el valor de cualquier parámetro, excepto PROJECT_ID. El valor - actúa como un comodín. El valor - es el valor predeterminado para cualquier parámetro si no especificas una opción de línea de comandos ni configuras 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 restablecimiento, ejecuta el siguiente comando:

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

Console

Usa las siguientes instrucciones para ver un plan de restablecimiento y sus detalles en la consola de Google Cloud:

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

    Ir a Google Kubernetes Engine

  2. En el menú de navegación, haz clic en Copia de seguridad para GKE.

  3. Haz clic en la pestaña Planes de restablecimiento.

  4. Expande el plan de copia de seguridad y haz clic en el nombre del plan de restablecimiento.

  5. Haz clic en la pestaña Detalles para ver sus detalles.

Actualiza un plan de restablecimiento

Actualiza un plan de restablecimiento y sus detalles mediante la CLI de gcloud.

gcloud

Para actualizar un plan de restablecimiento, por ejemplo, mediante la adición de una descripción nueva, 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.

Console

Usa las siguientes instrucciones para actualizar un plan de restablecimiento en la consola de Google Cloud:

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

    Ir a Google Kubernetes Engine

  2. En el menú de navegación, haz clic en Copia de seguridad para GKE.

  3. Haz clic en la pestaña Planes de restablecimiento.

  4. Haz clic en el nombre del plan de restablecimiento.

  5. Haga clic en la pestaña Detalles.

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

Borra un plan de restablecimiento

Puedes borrar un plan de restablecimiento con la CLI de gcloud o la consola de Google Cloud. Si borras un plan de restablecimiento, también se borran los planes secundarios de restablecimiento.

gcloud

Para borrar un restablecimiento, 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.

Console

Usa las siguientes instrucciones para borrar un plan de restablecimiento en la consola de Google Cloud:

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

    Ir a Google Kubernetes Engine

  2. En el menú de navegación, haz clic en Copia de seguridad para GKE.

  3. Haz clic en la pestaña Planes de restablecimiento.

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

  5. Haz clic en Borrar plan.

  6. Escribe el nombre del plan de restablecimiento y, luego, haz clic en Borrar plan de restablecimiento en el diálogo de confirmación.

¿Qué sigue?