Skip to main content
Hay disponible una nueva versión de este producto.
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Protege las aplicaciones usando Trident Protect

Puedes proteger todas las apps gestionadas por Trident Protect tomando instantáneas y backups usando una política de protección automatizada o de forma ad hoc.

Nota Puedes configurar Trident Protect para congelar y descongelar sistemas de archivos durante las operaciones de protección de datos. "Conoce más sobre cómo configurar la congelación del sistema de archivos con Trident Protect".

Crea una instantánea a pedido

Puedes crear una instantánea a pedido en cualquier momento.

Nota Los recursos con ámbito de clúster se incluyen en un backup, snapshot o clon si se hace referencia a ellos explícitamente en la definición de la aplicación o si tienen referencias a cualquiera de los espacios de nombres de la aplicación.
Crear una instantánea usando un CR
Pasos
  1. Crea el archivo de recurso personalizado (CR) y asígnale el nombre trident-protect-snapshot-cr.yaml.

  2. En el archivo que creaste, configura los siguientes atributos:

    • metadata.name: (Required) El nombre de este recurso personalizado; elige un nombre único y sensato para tu entorno.

    • spec.applicationRef: el nombre de Kubernetes de la aplicación para hacer snapshot.

    • spec.appVaultRef: (Required) El nombre de AppVault donde se debe almacenar el contenido de la instantánea (metadatos).

    • spec.reclaimPolicy: (opcional) Define lo que pasa con la AppArchive de una instantánea cuando se elimina el CR de la instantánea. Esto significa que incluso cuando se establece en Retain, la instantánea se eliminará. Opciones válidas:

      • Retain (predeterminado)

      • Delete

        apiVersion: protect.trident.netapp.io/v1
        kind: Snapshot
        metadata:
          namespace: my-app-namespace
          name: my-cr-name
        spec:
          applicationRef: my-application
          appVaultRef: appvault-name
          reclaimPolicy: Delete
  3. Después de rellenar el archivo trident-protect-snapshot-cr.yaml con los valores correctos, aplica la CR:

    kubectl apply -f trident-protect-snapshot-cr.yaml
Crea una instantánea usando la CLI
Pasos
  1. Crea la instantánea, reemplazando los valores entre corchetes con información de tu entorno. Por ejemplo:

    tridentctl-protect create snapshot <my_snapshot_name> --appvault <my_appvault_name> --app <name_of_app_to_snapshot> -n <application_namespace>

Crear un backup a pedido

Puedes hacer un backup de una app en cualquier momento.

Nota Los recursos con ámbito de clúster se incluyen en un backup, snapshot o clon si se hace referencia a ellos explícitamente en la definición de la aplicación o si tienen referencias a cualquiera de los espacios de nombres de la aplicación.
Antes de empezar

Asegúrate de que la caducidad del token de sesión de AWS sea suficiente para cualquier operación de backup s3 de larga duración. Si el token caduca durante la operación de backup, la operación puede fallar.

Crea un backup usando una CR
Pasos
  1. Crea el archivo de recurso personalizado (CR) y asígnale el nombre trident-protect-backup-cr.yaml.

  2. En el archivo que creaste, configura los siguientes atributos:

    • metadata.name: (Required) El nombre de este recurso personalizado; elige un nombre único y sensato para tu entorno.

    • spec.applicationRef: (Required) el nombre de Kubernetes de la aplicación que quieres respaldar.

    • spec.appVaultRef: (Obligatorio) El nombre del AppVault donde se debe almacenar el contenido de la copia de seguridad.

    • spec.dataMover: (Opcional) Una cadena que indica qué herramienta de backup se usará para la operación de backup. Valores posibles (distingue mayúsculas de minúsculas):

      • Restic

      • Kopia (predeterminado)

    • spec.reclaimPolicy: (Opcional) Define qué sucede con una copia de seguridad al liberarla de su reclamación. Valores posibles:

      • Delete

      • Retain (predeterminado)

    • spec.snapshotRef: (Opcional): Nombre de la instantánea que se usará como origen del backup. Si no se proporciona, se creará una instantánea temporal y se hará un backup.

      Ejemplo de YAML:

    ---
    apiVersion: protect.trident.netapp.io/v1
    kind: Backup
    metadata:
      namespace: my-app-namespace
      name: my-cr-name
    spec:
      applicationRef: my-application
      appVaultRef: appvault-name
      dataMover: Kopia
  3. Después de rellenar el archivo trident-protect-backup-cr.yaml con los valores correctos, aplica la CR:

    kubectl apply -f trident-protect-backup-cr.yaml
Crea un backup usando la CLI
Pasos
  1. Crea el backup, reemplazando los valores entre corchetes con información de tu entorno. Por ejemplo:

    tridentctl-protect create backup <my_backup_name> --appvault <my-vault-name> --app <name_of_app_to_back_up> --data-mover <Kopia_or_Restic> -n <application_namespace>

    Opcionalmente, puedes usar la --full-backup flag para especificar si un backup debe ser no incremental. Por defecto, todos los backups son incrementales. Cuando usas esta flag, el backup se vuelve no incremental. Lo mejor es hacer un backup completo de vez en cuando y luego backups incrementales entre los backups completos para minimizar el riesgo asociado con las restauraciones.

Anotaciones de backup compatibles

La siguiente tabla describe las anotaciones que puedes usar al crear una CR de backup:

Anotación Tipo Descripción Valor predeterminado

protect.trident.netapp.io/backup-completo

cadena

Especifica si una copia de seguridad debe ser no incremental. Establece en true para crear una copia de seguridad no incremental. Es buena práctica hacer un backup completo periódicamente y luego hacer backups incrementales entre los backups completos para minimizar el riesgo asociado con las restauraciones.

"false"

protect.trident.netapp.io/snapshot-completion-timeout

cadena

El tiempo máximo permitido para que se complete toda la operación de instantánea.

"60m"

protect.trident.netapp.io/volume-snapshots-ready-to-use-timeout

cadena

El tiempo máximo permitido para que las instantáneas de volumen alcancen el estado listo para usar.

"30m"

protect.trident.netapp.io/volume-snapshots-created-timeout

cadena

El tiempo máximo permitido para que se creen instantáneas de volumen.

"5m"

protect.trident.netapp.io/pvc-bind-timeout-sec

cadena

Tiempo máximo (en segundos) de espera para que cualquier PersistentVolumeClaims (PVCs) recién creado alcance la Bound fase antes de que la operación falle.

"1200" (20 minutos)

Crea un cronograma de protección de datos

Una política de protección protege una app creando snapshots, backups o ambos en una programación definida. Puedes elegir crear snapshots y backups cada hora, día, semana y mes, y puedes especificar la cantidad de copias que quieres conservar. Puedes programar un backup completo no incremental usando la anotación full-backup-rule. Por defecto, todos los backups son incrementales. Realizar un backup completo periódicamente, junto con backups incrementales entre medio, ayuda a reducir el riesgo asociado con las restauraciones.

Nota
  • Puedes crear programaciones solo para instantáneas configurando backupRetention en cero y snapshotRetention en un valor mayor que cero. Configurar snapshotRetention en cero significa que cualquier backup programado seguirá creando instantáneas, pero estas son temporales y se eliminan inmediatamente después de que el backup se complete.

  • Los recursos con ámbito de clúster se incluyen en un backup, snapshot o clon si se hace referencia a ellos explícitamente en la definición de la aplicación o si tienen referencias a cualquiera de los espacios de nombres de la aplicación.

Crea un cronograma usando un CR
Pasos
  1. Crea el archivo de recurso personalizado (CR) y asígnale el nombre trident-protect-schedule-cr.yaml.

  2. En el archivo que creaste, configura los siguientes atributos:

    • metadata.name: (Required) El nombre de este recurso personalizado; elige un nombre único y sensato para tu entorno.

    • spec.dataMover: (Opcional) Una cadena que indica qué herramienta de backup se usará para la operación de backup. Valores posibles (distingue mayúsculas de minúsculas):

      • Restic

      • Kopia (predeterminado)

    • spec.applicationRef: el nombre de Kubernetes de la aplicación que se va a respaldar.

    • spec.appVaultRef: (Obligatorio) El nombre del AppVault donde se debe almacenar el contenido de la copia de seguridad.

    • spec.backupRetention: (Obligatorio) El número de backups que se conservarán. Cero indica que no se deben crear backups (solo instantáneas).

    • spec.backupReclaimPolicy: (Opcional) Determina qué sucede con un backup si el backup CR se elimina durante su periodo de retención. Después del periodo de retención, los backups siempre se eliminan. Valores posibles (distingue mayúsculas de minúsculas):

      • Retain (predeterminado)

      • Delete

    • spec.snapshotRetention: (Obligatorio) El número de instantáneas que se conservarán. Cero indica que no se deben crear instantáneas.

    • spec.snapshotReclaimPolicy: (Opcional) Determina qué sucede con una instantánea si el CR de la instantánea se elimina durante su periodo de retención. Después del periodo de retención, las instantáneas siempre se eliminan. Valores posibles (distingue mayúsculas de minúsculas):

      • Retain

      • Delete (predeterminado)

    • spec.granularity: la frecuencia con la que debe ejecutarse la programación. Valores posibles, junto con los campos asociados obligatorios:

      • Hourly (requiere que especifiques spec.minute)

      • Daily (requiere que especifiques spec.minute y spec.hour)

      • Weekly (requiere que especifiques spec.minute, spec.hour, y spec.dayOfWeek)

      • Monthly (requiere que especifiques spec.minute, spec.hour, y spec.dayOfMonth)

      • Custom

    • spec.dayOfMonth: (Opcional) El día del mes (1 - 31) en que debe ejecutarse la programación. Este campo es obligatorio si la granularidad está establecida en Monthly. El valor debe proporcionarse como una cadena.

    • spec.dayOfWeek: (Opcional) El día de la semana (0 - 7) en que debe ejecutarse la programación. Los valores 0 o 7 indican domingo. Este campo es obligatorio si la granularidad está establecida en Weekly. El valor debe proporcionarse como una cadena.

    • spec.hour: (Opcional) La hora del día (0 - 23) en que debe ejecutarse la programación. Este campo es obligatorio si la granularidad se establece en Daily, Weekly o Monthly. El valor debe proporcionarse como una cadena.

    • spec.minute: (Opcional) El minuto de la hora (0 - 59) en que debe ejecutarse la programación. Este campo es obligatorio si la granularidad se establece en Hourly, Daily, Weekly o Monthly. El valor debe proporcionarse como una cadena.

      Ejemplo de YAML para programación de backup y snapshots:

      ---
      apiVersion: protect.trident.netapp.io/v1
      kind: Schedule
      metadata:
        namespace: my-app-namespace
        name: my-cr-name
      spec:
        dataMover: Kopia
        applicationRef: my-application
        appVaultRef: appvault-name
        backupRetention: "15"
        snapshotRetention: "15"
        granularity: Daily
        hour: "0"
        minute: "0"

      Ejemplo de YAML para la programación solo de instantáneas:

    ---
    apiVersion: protect.trident.netapp.io/v1
    kind: Schedule
    metadata:
      namespace: my-app-namespace
      name: my-snapshot-schedule
    spec:
      applicationRef: my-application
      appVaultRef: appvault-name
      backupRetention: "0"
      snapshotRetention: "15"
      granularity: Daily
      hour: "2"
      minute: "0"
  3. Después de rellenar el archivo trident-protect-schedule-cr.yaml con los valores correctos, aplica la CR:

    kubectl apply -f trident-protect-schedule-cr.yaml
Crea un horario usando la CLI
Pasos
  1. Crea el programa de protección, sustituyendo los valores entre corchetes por información de tu entorno. Por ejemplo:

    Nota Puedes usar tridentctl-protect create schedule --help para ver información de ayuda detallada para este comando.
    tridentctl-protect create schedule <my_schedule_name> \
      --appvault <my_appvault_name> \
      --app <name_of_app_to_snapshot> \
      --backup-retention <how_many_backups_to_retain> \
      --backup-reclaim-policy <Retain|Delete (default Retain)> \
      --data-mover <Kopia_or_Restic> \
      --day-of-month <day_of_month_to_run_schedule> \
      --day-of-week <day_of_week_to_run_schedule> \
      --granularity <frequency_to_run> \
      --hour <hour_of_day_to_run> \
      --minute <minute_of_hour_to_run> \
      --recurrence-rule <recurrence> \
      --snapshot-retention <how_many_snapshots_to_retain> \
      --snapshot-reclaim-policy <Retain|Delete (default Delete)> \
      --full-backup-rule <string> \
      --run-immediately <true|false> \
      -n <application_namespace>

    Las siguientes banderas te dan un control adicional sobre tu horario:

    • Programación de backup completo: Usa la bandera --full-backup-rule para programar backups completos no incrementales. Esta bandera solo funciona con --granularity Daily. Valores posibles:

      • Always: crea un backup completo cada día.

      • Días específicos de la semana: especifica uno o varios días separados por comas (por ejemplo, "Monday,Thursday"). Valores válidos: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.

        Nota La --full-backup-rule flag no funciona con granularidad horaria, semanal o mensual.
    • Planificaciones de solo instantáneas: establece --backup-retention 0 y especifica un valor mayor que cero para --snapshot-retention.

Anotaciones de horario compatibles

En la tabla siguiente se describen las anotaciones que puedes usar al crear un CR de planificación:

Anotación Tipo Descripción Valor predeterminado

protect.trident.netapp.io/full-backup-rule

cadena

Especifica la regla para programar backups completos. Puedes configurarla en Always para un backup completo constante o personalizarla según tus necesidades. Por ejemplo, si eliges granularidad diaria, puedes especificar los días de la semana en los que debe hacerse el backup completo (por ejemplo, "Monday,Thursday"). Los valores válidos de días de la semana son: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday. Ten en cuenta que esta anotación solo se puede usar con programaciones que tengan granularity configurado en Daily.

No configurado (todos los backups son incrementales)

protect.trident.netapp.io/snapshot-completion-timeout

cadena

El tiempo máximo permitido para que se complete toda la operación de instantánea.

"60m"

protect.trident.netapp.io/volume-snapshots-ready-to-use-timeout

cadena

El tiempo máximo permitido para que las instantáneas de volumen alcancen el estado listo para usar.

"30m"

protect.trident.netapp.io/volume-snapshots-created-timeout

cadena

El tiempo máximo permitido para que se creen instantáneas de volumen.

"5m"

protect.trident.netapp.io/pvc-bind-timeout-sec

cadena

Tiempo máximo (en segundos) de espera para que cualquier PersistentVolumeClaims (PVCs) recién creado alcance la Bound fase antes de que la operación falle.

"1200" (20 minutos)

Borrar una instantánea

Elimina las instantáneas programadas o bajo demanda que ya no necesitas.

Pasos
  1. Elimina el snapshot CR asociado con el snapshot:

    kubectl delete snapshot <snapshot_name> -n my-app-namespace

Eliminar un backup

Elimina los backups programados o bajo demanda que ya no necesites.

Nota Asegúrate de que la política de recuperación esté configurada en Delete para eliminar todos los datos de backup del almacenamiento de objetos. La configuración predeterminada de la política es Retain para evitar la pérdida accidental de datos. Si la política no se cambia a Delete, los datos de backup permanecerán en el almacenamiento de objetos y tendrás que eliminarlos manualmente.
Pasos
  1. Elimina el backup CR asociado al backup:

    kubectl delete backup <backup_name> -n my-app-namespace

Comprobar el estado de una operación de backup

Puedes usar la línea de comandos para comprobar el estado de un proceso de backup que está en curso, ha terminado o ha fallado.

Pasos
  1. Usa el siguiente comando para recuperar el estado de la operación de backup, sustituyendo los valores entre corchetes por la información de tu entorno:

    kubectl get backup -n <namespace_name> <my_backup_cr_name> -o jsonpath='{.status}'

Habilita el backup y la restauración para las operaciones de azure-netapp-files (ANF)

Si has instalado Trident Protect, puedes activar la funcionalidad de backup y restauración con gestión eficiente del espacio para backends de almacenamiento que usan la clase de almacenamiento azure-netapp-files y que fueron creados antes de Trident 24.06. Esta funcionalidad funciona con volúmenes NFSv4 y no consume espacio adicional del capacity pool.

Antes de empezar

Asegúrate de lo siguiente:

  • Has instalado Trident Protect.

  • Has definido una aplicación en Trident Protect. Esta aplicación tendrá una funcionalidad de protección limitada hasta que completes este procedimiento.

  • Has azure-netapp-files seleccionado como la clase de almacenamiento por defecto para tu backend de almacenamiento.

Expandir para pasos de configuración
  1. Haz lo siguiente en Trident si el volumen ANF se creó antes de actualizar a Trident 24.10:

    1. Habilita el directorio de instantáneas para cada PV que esté basado en azure-netapp-files y asociado con la aplicación:

      tridentctl update volume <pv name> --snapshot-dir=true -n trident
    2. Confirma que se ha habilitado el directorio de instantáneas para cada PV asociado:

      tridentctl get volume <pv name> -n trident -o yaml | grep snapshotDir

      Respuesta:

    snapshotDirectory: "true"

    +
    Cuando el directorio de instantáneas no está habilitado, Trident Protect elige la funcionalidad de backup normal, que consume temporalmente espacio en el pool de capacidad durante el proceso de backup. En este caso, asegúrate de que hay suficiente espacio disponible en el pool de capacidad para crear un volumen temporal del tamaño del volumen que se está respaldando.

Resultado

La aplicación está lista para backup y restauración usando Trident Protect. Cada PVC también está disponible para que otras aplicaciones lo usen en backups y restauraciones.