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.

También te recomendamos definir un programa cron para el plan de copia de seguridad, de modo que las copias de seguridad se creen automáticamente según ese programa. También puedes crear una copia de seguridad manual de las cargas de trabajo. Después de crear un plan de copia de seguridad, puedes crear una copia de seguridad 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
    --cron-schedule=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: Incluye recursos Secret si están dentro del alcance de la copia de seguridad (opcional).

  • --include-volume-data: Incluye datos de volumen persistente en la copia de seguridad (opcional). Omite esta marca si deseas crear volúmenes vacíos durante el restablecimiento.

  • ENCRYPTION_KEY: Define la ruta a una clave de encriptación administrada por el cliente (opcional). Consulta Información sobre la encriptación de CMEK.

  • SCHEDULE: Define una programación que crea copias de seguridad de forma automática y admite la sintaxis cron estándar (opcional). 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.

  • RETAIN_DAYS: Es la cantidad de días que se conservará la copia de seguridad (obligatorio si se configura SCHEDULE). Las copias de seguridad de este plan se borran de forma automática después de que vence este período.

  • DELETE_LOCK_DAYS: Es la cantidad de días durante los cuales no se pueden borrar las copias de seguridad (opcional). 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: Bloquea la política de retención del plan de copia de seguridad (opcional).

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

Crea un BackupPlan para todos los espacios de nombres con una programación diaria

Con el siguiente comando, se crea una 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 7 días y se bloquean durante 3 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 BackupPlan para un espacio de nombres seleccionado con una programación por hora

Con el siguiente comando, se crea una 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 3 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 BackupPlan para un seleccionadoProtectedApplication

El siguiente comando crea un BackupPlan 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. En la sección Programación de copia de seguridad, en el campo de string CRON, ingresa una expresión con 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.

  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?