Migrar aplicaciones con Trident Protect
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.
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.
-
Debe realizar una de las siguientes acciones:
-
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.
-
Debe realizar una de las siguientes acciones:
-
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.
-
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
-
Cree el archivo de recursos personalizados (CR) y asígnele un nombre
trident-protect-snapshot-restore-cr.yaml
. -
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
ymy-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"}]
-
-
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"]
-
-
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 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 formatosource1:dest1,source2:dest2
.Por ejemplo:
tridentctl protect create snapshotrestore <my_restore_name> --snapshot <namespace/snapshot_to_restore> --namespace-mapping <source_to_destination_namespace_mapping>
-