Planifica un conjunto de copias de seguridad


En esta página, se describe cómo crear un plan de copia de seguridad para GKE, que se usa a fin de crear una copia de seguridad de tus cargas de trabajo en Google Kubernetes Engine (GKE).

Los planes de copia de seguridad proporcionan las funciones de configuración, ubicación y administración de una secuencia de copias de seguridad. Un plan de copia de seguridad contiene una configuración de copia de seguridad que incluye el clúster de origen, la selección de las cargas de trabajo de las que se creará una copia de seguridad y la región en la que se almacenan los artefactos de copia de seguridad producidos en este plan.

Puedes crear uno o más planes de copia de seguridad para cada clúster. Existen dos motivos principales por los que es posible que desees tener más de un plan de copia de seguridad para un clúster:

  • Deseas almacenar tus artefactos de copia de seguridad en varias regiones. En este caso, crea un plan de copia de seguridad para cada región en la que quieres almacenar las copias de seguridad.
  • Deseas particionar las copias de seguridad de tu clúster, por ejemplo:

    • En lugar de una copia de seguridad muy grande tomada en un solo momento del día, quieres tener varias copias de seguridad más pequeñas distribuidas durante todo el día.
    • Deseas crear copias de seguridad de algunas partes del clúster con más frecuencia que otras (como las copias de seguridad diarias de algunos espacios de nombres y las copias de seguridad por hora de otros).

Recomendamos que cada clúster tenga al menos un plan de copia de seguridad.

Puedes crear un plan de copia de seguridad con un método de programación de copias de seguridad para crear copias de seguridad automáticamente: programación inteligente o programación cron. Te recomendamos la programación inteligente para tu plan de copia de seguridad. Esto garantiza que las copias de seguridad se creen de forma automática para cumplir con los requisitos del objetivo de punto de recuperación (RPO). Para obtener más información, consulta Creación y eliminación automáticas de copias de seguridad.

Si no deseas crear un plan de copia de seguridad con métodos de programación de copias de seguridad, debes crear una copia de seguridad manual de las cargas de trabajo. Después de crear un plan de copia de seguridad, puedes crear una a partir de ese plan.

Antes de comenzar

Roles obligatorios

Para obtener los permisos que necesitas para crear y administrar un plan de copia de seguridad, pídele a tu administrador que te otorgue el administrador de copias de seguridad de GKE (roles/gkebackup.backupAdmin), que es un subconjunto del rol de IAM de administrador de Copia de seguridad de 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 creación de copias de seguridad

Crea un plan de copia de seguridad mediante la CLI de gcloud o la consola de Google Cloud.

gcloud

Para crear un plan de copia de seguridad con un programa, ejecuta el siguiente comando:

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --encryption-key=ENCRYPTION_KEY
    --target-rpo-minutes=TARGET_RPO_MINUTES \
    --exclusion-windows-file=EXCLUSION_WINDOWS_FILE
    --cron-schedule=CRON_SCHEDULE \
    --backup-retain-days=RETAIN_DAYS \
    --backup-delete-lock-days=DELETE_LOCK_DAYS \
    --locked

Reemplaza lo siguiente:

  • BACKUP_PLAN: El nombre del plan de copia de seguridad 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.
  • CLUSTER: La ruta de acceso relativa al clúster:
    • Clústeres regionales: projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
    • Clústeres zonales: projects/PROJECT_ID/locations/ZONE/clusters/CLUSTER_NAME
  • CLUSTER_NAME: el nombre del clúster del que se creará una copia de seguridad.
  • --all-namespaces: Crea una copia de seguridad de todos los espacios de nombres del clúster.

    Como alternativa, puedes especificar lo siguiente:

    • --selected-applications por una lista de ProtectedApplications como NAMESPACE1/APP1,NAMESPACE2/APP2,... para crear una copia de seguridad
    • --selected-namespaces por una lista de espacios de nombres como NAMESPACE1,NAMESPACE2,... para crear una copia de seguridad.

    Debes especificar una de estas opciones cuando crees un plan de copia de seguridad.

  • --include-secrets: es un argumento opcional para incluir recursos Secret si están dentro del alcance de la copia de seguridad.

  • --include-volume-data: es un argumento opcional para incluir datos de volumen persistente en la copia de seguridad. No establezcas este argumento si deseas crear volúmenes vacíos durante el restablecimiento.

  • ENCRYPTION_KEY: es un argumento opcional para definir la ruta a una clave de encriptación administrada por el cliente. Consulta Información sobre la encriptación de CMEK.

  • TARGET_RPO_MINUTES: es un argumento obligatorio si se configura EXCLUSION_WINDOWS_FILE. Especifica el RPO objetivo en minutos. La programación inteligente usa este valor para crear copias de seguridad automáticamente. El mínimo es de 60 minutos (1 hora) y el máximo es de 86,400 minutos (60 días). No puedes configurar TARGET_RPO_MINUTES y CRON_SCHEDULE de forma simultánea en un plan de copia de seguridad.

  • EXCLUSION_WINDOWS_FILE: es un argumento opcional para definir períodos durante los que no se puede realizar la copia de seguridad. Todas las horas se interpretan como UTC. Este argumento solo está disponible cuando se configura TARGET_RPO_MINUTES.

  • CRON_SCHEDULE: es un argumento opcional para definir una programación cron que crea copias de seguridad de forma automática y admite la sintaxis cron estándar. Por ejemplo, "10 3 * * *" crea una copia de seguridad a las 3:10 a.m. todos los días. Todas las horas se interpretan como UTC. El intervalo mínimo entre las copias de seguridad programadas es de 10 minutos. No puedes configurar CRON_SCHEDULE y TARGET_RPO_MINUTES de forma simultánea en un plan de copia de seguridad.

  • RETAIN_DAYS: Es un argumento obligatorio si se configuran TARGET_RPO_MINUTES o CRON_SCHEDULE. Especifica la cantidad de días que se retendrá la copia de seguridad. Las copias de seguridad de este plan se borran de forma automática después de que vence el período de retención.

  • DELETE_LOCK_DAYS: es un argumento opcional para especificar la cantidad de días durante los cuales no se pueden borrar las copias de seguridad. Si se configura este valor, las copias de seguridad creadas para ese plan no se pueden borrar (ya sea de forma manual o automática) hasta que venza ese ciclo de vida.

  • --locked: es un argumento opcional para bloquear la política de retención del plan de copia de seguridad.

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

Crea un plan de copia de seguridad para todos los espacios de nombres con un RPO de 24 horas y un único período de exclusión

Crea un archivo window.yaml que contenga un arreglo YAML de exclusionWindows.

exclusionWindows:
- startTime:
    hours: 1
    minutes: 0
  duration: "3600s"
  singleOccurrenceDate:
    day: 1
    month: 3
    year: 2024

Con el siguiente comando, se crea un plan de copia de seguridad para todos los espacios de nombres con un RPO de destino de 24 horas y no se permiten copias de seguridad de 1:00 a.m. a 2:00 a.m. el 1 de marzo de 2024. Las copias de seguridad se conservan durante siete días y se bloquean durante tres días después de su creación:

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --target-rpo-minutes=1440 \
    --exclusion-windows-file=window.yaml \
    --backup-retain-days=7 \
    --backup-delete-lock-days=3 \
    --locked

Crea un plan de copia de seguridad para todos los espacios de nombres con un RPO de 2 horas y varios períodos de exclusión

Crea un archivo window.yaml que contenga un arreglo YAML de exclusionWindows: un período semanal y un período de caso único.

exclusionWindows:
- startTime:
    hours: 15
    minutes: 0
  duration: "5400s"
  daysOfWeek:
    daysOfWeek:
    - MONDAY
    - FRIDAY
- startTime:
    hours: 1
    minutes: 0
  duration: "3600s"
  singleOccurrenceDate:
    day: 1
    month: 3
    year: 2024

Con el siguiente comando, se crea un plan de copia de seguridad para todos los espacios de nombres con un RPO objetivo de 2 horas y no se permiten copias de seguridad de 1 a.m. a 2 a.m. el 1 de marzo de 2024 y de 3 p.m. a 4:30 p.m. todos los lunes y viernes. Las copias de seguridad se conservan durante siete días y se bloquean durante tres días después de su creación:

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --target-rpo-minutes=120 \
    --exclusion-windows-file=window.yaml \
    --backup-retain-days=7 \
    --backup-delete-lock-days=3 \
    --locked

Crea un plan de copia de seguridad para todos los espacios de nombres con una programación cron diaria

Con el siguiente comando, se crea un plan de copia de seguridad para programar las copias de seguridad diarias de todos los espacios de nombres a las 5:20 a.m. todos los días. Las copias de seguridad se conservan durante siete días y se bloquean durante tres días después de su creación:

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --cron-schedule="20 5 * * *" \
    --backup-retain-days=7 \
    --backup-delete-lock-days=3 \
    --locked

Crea un plan de copia de seguridad para un espacio de nombres seleccionado con una programación cron por hora

Con el siguiente comando, se crea un plan de copia de seguridad para programar la copia de seguridad por hora del espacio de nombres seleccionado (my-ns) en el minuto 15 cada hora. Las copias de seguridad se conservan durante tres días después de su creación:

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --selected-namespaces=my-ns \
    --include-secrets \
    --include-volume-data \
    --cron-schedule="15 * * * *" \
    --backup-retain-days=3

Crea un plan de copia de seguridad para un ProtectedApplication seleccionado

El siguiente comando crea un plan de copia de seguridad para seleccionar ProtectedApplication (my-ns/my-app).

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --selected-applications=my-ns1/my-app1,my-ns2/my-app2 \
    --include-secrets \
    --include-volume-data

Console

Usa las siguientes instrucciones para crear un plan de copias de seguridad 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 Create a backup plan.

  4. En la sección Detalles del plan, haz lo siguiente:

    1. Selecciona el clúster del que deseas crear una copia de seguridad.
    2. Ingresa el nombre del plan de copia de seguridad y la descripción opcional.
    3. Elige una ubicación para la copia de seguridad.
  5. Para crear copias de seguridad automáticamente, en la sección Programación de copia de seguridad, selecciona la casilla de verificación Habilitar programación de copia de seguridad y, luego, elige uno de los siguientes métodos:

    1. Elige Programación inteligente y haz lo siguiente:

      1. En el campo RPO objetivo, ingresa el RPO para el plan de copia de seguridad y, luego, selecciona el valor de RPO en Minutos, Horas o Días en el menú desplegable.
      2. Opcional: Selecciona la casilla de verificación Definir un único período de exclusión de copia de seguridad recurrente para la exclusión de la copia de seguridad.
        1. Elige Diariamente o Semanalmente en el período de exclusión.
        2. En la sección Se repite el, selecciona los días de la semana que deseas excluir del plan de copia de seguridad. Este campo solo se muestra para el período de exclusión semanal.
        3. En el campo Hora de inicio del período, ingresa la hora de inicio de la exclusión del plan de copia de seguridad.
        4. En el campo Duración, ingresa la duración de la exclusión del plan de copias de seguridad y, luego, selecciona Segundos, Minutos u Horas en la menú desplegable.
      3. Opcional: Si deseas crear uno o más períodos de exclusión de copia de seguridad de un solo caso, selecciona la casilla de verificación Definir una o más fechas de exclusión de copia de seguridad y haz lo siguiente:
        1. Haz clic en Agregar fecha de exclusión.
        2. En el campo Fecha y hora de inicio para el período de exclusión, haz clic en el ícono y, luego, selecciona la Fecha y la Hora de las copias de seguridad.
        3. En el campo Duración, ingresa la duración de la exclusión del plan de copias de seguridad y, luego, selecciona Segundos, Minutos u Horas en la menú desplegable.
    2. Selecciona Programa cron y, luego, ingresa una expresión CRON con la sintaxis cron estándar. Por ejemplo, 10 3 * * * crea una copia de seguridad a las 3:10 a.m. todos los días. El intervalo mínimo entre las copias de seguridad programadas es de 10 minutos.

  6. En la sección Política de retención, haz lo siguiente:

    1. Configura la cantidad de días que se retendrá la copia de seguridad antes de que esta se borre de forma automática.
    2. Configura la cantidad de días durante los cuales no se pueden borrar las copias de seguridad.
    3. A fin de bloquear la política de retención, haz clic en el ícono de bloqueo para cambiar el estado de Desactivado a Activado.
  7. En la sección Configura el permiso y la encriptación de la copia de seguridad, haz lo siguiente:

    1. Selecciona el alcance del plan de copia de seguridad:

      • Haz clic en Entire cluster (including all namespaces) para crear una copia de seguridad de todos los recursos con espacio de nombres en la copia de seguridad.
      • Haz clic en Selected namespaces within this cluster para elegir los espacios de nombres que deseas incluir en el plan de copia de seguridad.
      • Haz clic en Selected protected applications within this cluster para seleccionar recursos especificando el espacio de nombres y el nombre de la aplicación.
    2. Haz clic en la casilla de verificación Secrets para incluir los recursos de Secret de Kubernetes.

    3. Haz clic en la casilla de verificación Persistent volume data si deseas que los datos de volumen se incluyan en tu copia de seguridad. Si eliges omitir los datos de volumen, no podrás restablecerlos durante el restablecimiento. Sin embargo, tendrás dos opciones para elegir los datos de volumen durante el restablecimiento: Aprovisionar volúmenes nuevos o Reuse existing volumes.

    4. Para habilitar la encriptación de CMEK, primero debes otorgar el acceso a las claves CMEK adecuadas (consulta Acerca de la encriptación de CMEK).

      1. Haz clic en la casilla de verificación Usar una clave de encriptación administrada por el cliente para seleccionar una clave.
  8. Revisa los detalles del plan de copia de seguridad y haz clic en Create plan.

Terraform

Crea un recurso google_gke_backup_backup_plan

resource "google_gke_backup_backup_plan" "basic" {
   name = "BACKUP_PLAN"
   cluster = google_container_cluster.CLUSTER.id
   location = "LOCATION"
   retention_policy {
     backup_retain_days = 7
   }
   backup_schedule {
     cron_schedule = "17 3 * * *"
   }
   backup_config {
     include_volume_data = true
     include_secrets = true
     all_namespaces = true
   }
}

Reemplaza lo siguiente:

  • BACKUP_PLAN: El nombre del plan de copia de seguridad que deseas crear.
  • CLUSTER: Es el nombre de tu recurso google_container_cluster.
  • LOCATION: Es la región en la que deseas almacenar las copias de seguridad.

Para obtener más información, consulta gke_backup_backup_plan.

Visualiza un plan de copia de seguridad

Ve un plan de copia de seguridad y sus detalles mediante la CLI de gcloud o la consola de Google Cloud.

gcloud

Para obtener una lista de todos los planes de copia de seguridad dentro del proyecto y la región, ejecuta el siguiente comando:

gcloud beta container backup-restore backup-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 backup-plans list.

Para ver los detalles de un plan de copia de seguridad, ejecuta el siguiente comando:

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

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

Console

Usa las siguientes instrucciones para ver un plan de copias de seguridad 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 Backup Plans.

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

  5. Haz clic en la pestaña Detalles para ver los detalles del plan.

Actualiza un plan de copia de seguridad

Actualiza un plan de copia de seguridad mediante la CLI de gcloud o la consola de Google Cloud.

gcloud

Para actualizar un plan de copia de seguridad, por ejemplo, mediante la adición de una descripción nueva, ejecuta el siguiente comando:

gcloud beta container backup-restore backup-plans update BACKUP_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 backup-plans update.

Console

Usa las siguientes instrucciones para actualizar un plan de copias de seguridad 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 Backup Plans.

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

  5. Haz clic en la pestaña Detalles para editar los detalles del plan.

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

Pausa una programación de copia de seguridad

Puedes pausar tu programación de copia de seguridad. Mientras la programación está en pausa, no se crean copias de seguridad automáticas. De todos modos, puedes crear copias de seguridad de forma manual.

gcloud

Para pausar una programación de copia de seguridad, ejecuta el siguiente comando:

gcloud beta container backup-restore backup-plans update BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --paused

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

Console

Usa las siguientes instrucciones para pausar una programación de copia de seguridad 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 Backup Plans.

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

  5. Haz clic en Pausar programación y, luego, en Pausar programación en el diálogo de confirmación.

Borra un plan de copia de seguridad

Puedes borrar un plan de copia de seguridad con la CLI de gcloud o la consola de Google Cloud. No puedes borrar un plan de copia de seguridad si el plan contiene copias de seguridad.

gcloud

Para borrar un plan de copia de seguridad, ejecuta el siguiente comando:

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

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

Console

Usa las siguientes instrucciones para borrar un plan de copias de seguridad 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 Backup Plans.

  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 copia de seguridad y, luego, haz clic en Borrar plan de la copia de seguridad en el diálogo de confirmación.

¿Qué sigue?