Skip to main content
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.

Migrar aplicaciones con Trident Protect

Colaboradores

Puede migrar sus aplicaciones entre clústeres o clases de almacenamiento si restaura los datos de backup o Snapshot a otro clúster o tipo de almacenamiento.

Nota Al migrar una aplicación, todos los ganchos de ejecución configurados para la aplicación se migran con la aplicación. Si hay un enlace 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 para las siguientes situaciones, se pueden automatizar tareas de backup y restauración específicas.

Clone en el mismo clúster

Para clonar una aplicación en el mismo clúster, cree una copia Snapshot o un backup y restaure los datos en el mismo clúster.

Pasos
  1. Debe realizar una de las siguientes acciones:

  2. En el mismo clúster, realice una de las siguientes acciones, según si se ha creado una snapshot o un backup:

Clone en otro clúster

Para clonar una aplicación en un clúster diferente (realizar un clon entre clústeres), crear una instantánea o realizar un backup y restaurar los datos en otro clúster. Asegúrese de que Trident Protect está instalado en el clúster de destino.

Pasos
  1. Debe realizar una de las siguientes acciones:

  2. Asegúrese de que se ha configurado el CR de AppVault para el depósito de almacenamiento de objetos que contiene la copia de seguridad o la instantánea en el clúster de destino.

  3. En el clúster de destino, realice una de las siguientes acciones, según si se creó una snapshot o un backup:

Migre aplicaciones de una clase de almacenamiento a otra clase de almacenamiento

Puede migrar aplicaciones de una clase de almacenamiento a otra clase de almacenamiento restaurando una instantánea a otra clase de almacenamiento de destino.

Por ejemplo (excluyendo los secretos de la CR de restauración):

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
Restaure la instantánea con un CR
Pasos
  1. Cree el archivo de recursos personalizados (CR) y asígnele un nombre trident-protect-snapshot-restore-cr.yaml.

  2. En el archivo creado, configure los siguientes atributos:

    • metadata.name: (required) El nombre de este recurso personalizado; elija un nombre único y sensible para su entorno.

    • Spec.appArchivePath: La ruta dentro de AppVault donde se almacena el contenido de la instantánea. Puede utilizar el siguiente comando para buscar esta ruta:

      kubectl get snapshots <my-snapshot-name> -n trident-protect -o jsonpath='{.status.appArchivePath}'
    • Spec.appVaultRef: (required) El nombre del AppVault donde se almacena el contenido 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. Reemplace my-source-namespace y my-destination-namespace con la información de su 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 necesita seleccionar solo ciertos recursos de la aplicación para restaurar, agregue filtros que incluyan o excluyan recursos marcados con etiquetas concretas:

    • ResourceFilter.resourceSelectionCriteria: (Requerido para filtrar) Usa include or exclude para incluir o excluir un recurso definido en resourceMatchers. Agregue los siguientes parámetros resourceMatchers para definir los recursos que se van a incluir o excluir:

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

    • ResourceMatchers.kind: (Optional) Tipo de recurso a filtrar.

    • ResourceMatchers.version: (Optional) Versión del recurso a filtrar.

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

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

    • ResourceMatchers.labelSelectors: (Optional) Cadena de selector de etiquetas en el campo Kubernetes metadata.name del recurso tal como se define en el "Documentación de Kubernetes". Por ejemplo "trident.netapp.io/os=linux": .

      Por ejemplo:

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

    kubectl apply -f trident-protect-snapshot-restore-cr.yaml
Restaure la instantánea mediante la interfaz de línea de comandos
Pasos
  1. Restaure la instantánea en un espacio de nombres diferente, reemplazando los valores entre paréntesis por información de su entorno.

    • El snapshot argumento utiliza 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 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>