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.

Migra aplicaciones usando Trident Protect

Puedes migrar tus aplicaciones entre clústeres o a diferentes clases de almacenamiento restaurando los datos de backup.

Nota Cuando migras una aplicación, todos los ganchos de ejecución configurados para la aplicación se migran con la app. Si hay un gancho de ejecución posterior a la restauración, se ejecuta automáticamente como parte de la operación de restauración.

Operaciones de backup y restauración

Para realizar operaciones de backup y restauración en los siguientes escenarios, puedes automatizar tareas específicas de backup y restauración.

Clonar en el mismo clúster

Para clonar una aplicación en el mismo clúster, crea una instantánea o backup y restaura los datos en el mismo clúster.

Pasos
  1. Debe realizar una de las siguientes acciones:

  2. En el mismo clúster, haz una de las siguientes cosas, dependiendo de si creaste una instantánea o un backup:

Clonar a clúster diferente

Para clonar una aplicación en un clúster diferente (realizar un clon entre clústeres), crea un backup en el clúster de origen y luego restaura el backup en un clúster diferente. Asegúrate de que Trident Protect está instalado en el clúster de destino.

Nota Puedes replicar una aplicación entre diferentes clústeres usando "Replicación de SnapMirror".
Pasos
  1. "Crear un backup".

  2. Asegúrate de que el AppVault CR para el bucket de almacenamiento de objetos que contiene el backup se ha configurado en el clúster de destino.

  3. En el clúster de destino, "restaura tus datos desde el backup".

Migra aplicaciones de una clase de almacenamiento a otra clase de almacenamiento

Puedes migrar aplicaciones de una clase de almacenamiento a otra diferente restaurando un backup en la clase de almacenamiento de destino.

Por ejemplo (excluyendo los secretos del restore CR):

apiVersion: protect.trident.netapp.io/v1
kind: SnapshotRestore
metadata:
  name: "${snapshotRestoreCRName}"
spec:
  appArchivePath: "${snapshotArchivePath}"
  appVaultRef: "${appVaultCRName}"
  namespaceMapping:
    - destination: "${destinationNamespace}"
      source: "${sourceNamespace}"
  storageClassMapping:
    - destination: "${destinationStorageClass}"
      source: "${sourceStorageClass}"
  resourceFilter:
    resourceMatchers:
      kind: Secret
      version: v1
    resourceSelectionCriteria: exclude
Restaura la instantánea usando una CR
Pasos
  1. Crea el archivo de recurso personalizado (CR) y asígnale el nombre trident-protect-snapshot-restore-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.appArchivePath: la ruta dentro de AppVault donde se almacena el contenido de la instantánea. Puedes usar el siguiente comando para encontrar esta ruta:

      kubectl get snapshots <my-snapshot-name> -n trident-protect -o jsonpath='{.status.appArchivePath}'
    • spec.appVaultRef: (Required) El nombre de AppVault donde se almacenan los contenidos de la instantánea.

    • spec.namespaceMapping: la asignación del espacio de nombres de origen de la operación de restauración al espacio de nombres de destino. Reemplaza my-source-namespace y my-destination-namespace con información de tu entorno.

      ---
      apiVersion: protect.trident.netapp.io/v1
      kind: SnapshotRestore
      metadata:
        name: my-cr-name
        namespace: trident-protect
      spec:
        appArchivePath: my-snapshot-path
        appVaultRef: appvault-name
        namespaceMapping: [{"source": "my-source-namespace", "destination": "my-destination-namespace"}]
  3. Opcionalmente, si necesitas seleccionar solo ciertos recursos de la aplicación para restaurar, agrega un filtrado que incluya o excluya recursos marcados con etiquetas particulares:

    • resourceFilter.resourceSelectionCriteria: (Obligatorio para el filtrado) Usa include or exclude para incluir o excluir un recurso definido en resourceMatchers. Agrega los siguientes parámetros de resourceMatchers para definir los recursos que se incluirán o excluirán:

      • resourceFilter.resourceMatchers: una matriz de objetos resourceMatcher. Si defines múltiples elementos en esta matriz, coinciden como una operación OR y los campos dentro de cada elemento (group, kind, version) coinciden como una operación AND.

        • resourceMatchers[].group: (Opcional) Grupo del recurso a filtrar.

        • resourceMatchers[].kind: (Opcional) Tipo del recurso a filtrar.

        • resourceMatchers[].version: (Opcional) Versión del recurso a filtrar.

        • resourceMatchers[].names: (Opcional) Nombres en el campo metadata.name de Kubernetes del recurso que se va a filtrar.

        • resourceMatchers[].namespaces: (Opcional) Espacios de nombres en el campo metadata.name de Kubernetes del recurso que se va a filtrar.

        • resourceMatchers[].labelSelectors: (opcional) Cadena de selector de etiqueta en el campo metadata.name de Kubernetes del recurso, como se define en "Documentación de Kubernetes". Por ejemplo: "trident.netapp.io/os=linux".

          Por ejemplo:

    spec:
      resourceFilter:
        resourceSelectionCriteria: "include"
        resourceMatchers:
          - group: my-resource-group-1
            kind: my-resource-kind-1
            version: my-resource-version-1
            names: ["my-resource-names"]
            namespaces: ["my-resource-namespaces"]
            labelSelectors: ["trident.netapp.io/os=linux"]
          - group: my-resource-group-2
            kind: my-resource-kind-2
            version: my-resource-version-2
            names: ["my-resource-names"]
            namespaces: ["my-resource-namespaces"]
            labelSelectors: ["trident.netapp.io/os=linux"]
  4. Después de rellenar el archivo trident-protect-snapshot-restore-cr.yaml con los valores correctos, aplica la CR:

    kubectl apply -f trident-protect-snapshot-restore-cr.yaml
Restaura la instantánea usando la CLI
Pasos
  1. Restaura la instantánea en un espacio de nombres diferente, reemplazando los valores entre corchetes con información de tu entorno.

    • El snapshot`argumento usa un espacio de nombres y un nombre de instantánea en el formato `<namespace>/<name>.

    • El namespace-mapping argumento utiliza espacios de nombres separados por dos puntos para asignar los espacios de nombres de origen a los espacios de nombres de destino correctos en el formato source1:dest1,source2:dest2.

      Por ejemplo:

    tridentctl-protect create snapshotrestore <my_restore_name> --snapshot <namespace/snapshot_to_restore> --namespace-mapping <source_to_destination_namespace_mapping>