Google Distributed Cloud (GDC) con aislamiento de aire te permite crear copias de seguridad y restablecer datos desde el directorio principal de tus instancias de JupyterLab.
En esta página, se describe cómo crear y restablecer copias de seguridad de los datos de los notebooks de Vertex AI Workbench. Si eres nuevo en Vertex AI, obtén más información sobre Vertex AI Workbench.
Antes de comenzar
Para obtener los permisos que necesitas para copiar los datos restablecidos, pídele al administrador de IAM de tu organización que te otorgue el rol de desarrollador de clúster de usuarios (user-cluster-developer).
Crea una copia de seguridad y restablece los datos de la instancia de JupyterLab
Define aplicaciones protegidas para crear una copia de seguridad del directorio principal de una instancia individual de JupyterLab o de los directorios principales de todas las instancias de JupyterLab de un proyecto a la vez.
Crea un recurso personalizado ProtectedApplication en el clúster en el que deseas programar copias de seguridad. Los planes de copia de seguridad y restablecimiento usan aplicaciones protegidas para seleccionar recursos. Para obtener información sobre cómo crear aplicaciones protegidas, consulta Estrategias de protección de aplicaciones.
El recurso personalizado ProtectedApplication contiene los siguientes campos:
| Campo | Descripción | |||
|---|---|---|---|---|
| resourceSelection | Es la forma en que el objeto ProtectedApplicationselecciona recursos para copias de seguridad o restablecimientos. | |||
| type | Es el método para seleccionar recursos. Un tipo Selectorindica que se deben seleccionar los recursos con etiquetas coincidentes. | |||
| selector | Son las reglas de selección. Este campo contiene los siguientes subcampos: | |||
| matchLabels | Son las etiquetas que usa el objeto ProtectedApplicationpara hacer coincidir los recursos. Este campo contiene los siguientes subcampos: | |||
| app.kubernetes.io/part-of | Nombre de una aplicación de nivel superior de la que forma parte esta. Selecciona Vertex AI Workbench como la aplicación de alto nivel para las instancias de JupyterLab. | |||
| app.kubernetes.io/component | Es el componente dentro de la arquitectura. Selecciona recursos de Vertex AI Workbench que proporcionen almacenamiento para las instancias de JupyterLab. | |||
| app.kubernetes.io/instance | Es un nombre único que identifica la instancia de una aplicación. Reduce el alcance para seleccionar una instancia de JupyterLab. El valor es el mismo que el nombre de la instancia de JupyterLab en la consola de GDC. | |||
Usa el recurso personalizado ProtectedApplication para seleccionar el almacenamiento de una sola instancia de JupyterLab o de todas las instancias de JupyterLab en un proyecto, como en los siguientes ejemplos:
- Selecciona el almacenamiento de una sola instancia de JupyterLab: - En el siguiente ejemplo, se muestra un recurso personalizado - ProtectedApplicationque selecciona el almacenamiento para una instancia de JupyterLab llamada- my-instance-nameen el espacio de nombres- my-project:- apiVersion: gkebackup.gke.io/v1 kind: ProtectedApplication metadata: name: my-protected-application namespace: my-project spec: resourceSelection: type: Selector selector: matchLabels: app.kubernetes.io/part-of: vtxwb app.kubernetes.io/component: storage app.kubernetes.io/instance: my-instance-name
- Selecciona el almacenamiento de todas las instancias de JupyterLab: - En el siguiente ejemplo, se muestra un recurso personalizado - ProtectedApplicationque selecciona el almacenamiento para todas las instancias de JupyterLab en el espacio de nombres- my-project:- apiVersion: gkebackup.gke.io/v1 kind: ProtectedApplication metadata: name: my-protected-application namespace: my-project spec: resourceSelection: type: Selector selector: matchLabels: app.kubernetes.io/part-of: vtxwb app.kubernetes.io/component: storage- Este ejemplo no contiene la etiqueta - app.kubernetes.io/instanceporque selecciona todas las instancias de JupyterLab.
Para crear una copia de seguridad y restablecer datos desde una instancia de JupyterLab, planifica un conjunto de copias de seguridad y planifica un conjunto de restablecimientos con el recurso personalizado ProtectedApplication que definiste.
Copia los datos restablecidos en una nueva instancia de JupyterLab
Sigue estos pasos para copiar los datos restablecidos del recurso PersistentVolumeClaim de una instancia de JupyterLab a una instancia nueva de JupyterLab:
- Cumple con los requisitos previos.
- Crea un notebook de JupyterLab asociado a una instancia de JupyterLab para copiar los datos restaurados.
- Obtén el nombre del pod de la instancia de JupyterLab en la que creaste el notebook: - kubectl get pods -l notebook-name=INSTANCE_NAME -n PROJECT_NAMESPACE- Reemplaza lo siguiente: - INSTANCE_NAME: Es el nombre de la instancia de JupyterLab que configuraste.
- PROJECT_NAMESPACE: Es el espacio de nombres del proyecto en el que creaste la instancia de JupyterLab.
 
- Obtén el nombre de la imagen que ejecuta la instancia de JupyterLab: - kubectl get pods POD_NAME -n PROJECT_NAMESPACE -o jsonpath="{.spec.containers[0].image}"- Reemplaza lo siguiente: - POD_NAME: Es el nombre del Pod de la instancia de JupyterLab.
- PROJECT_NAMESPACE: Es el espacio de nombres del proyecto en el que creaste la instancia de JupyterLab.
 
- Busca el nombre del recurso - PersistentVolumeClaimque se restableció:- kubectl get pvc -l app.kubernetes.io/part-of=vtxwb,app.kubernetes.io/component=storage,app.kubernetes.io/instance=RESTORED_INSTANCE_NAME -n PROJECT_NAMESPACE- Reemplaza lo siguiente: - RESTORED_INSTANCE_NAME: Es el nombre de la instancia de JupyterLab que restableciste.
- PROJECT_NAMESPACE: Es el espacio de nombres del proyecto en el que creaste la instancia de JupyterLab.
 
- Crea un archivo YAML llamado - vtxwb-data.yamlcon el siguiente contenido:- apiVersion: v1 kind: Pod metadata: name: vtxwb-data namespace: PROJECT_NAMESPACE labels: aiplatform.gdc.goog/service-type: workbench spec: containers: - args: - sleep infinity command: - bash - -c image: IMAGE_NAME imagePullPolicy: IfNotPresent name: vtxwb-data resources: limits: cpu: "1" memory: 1Gi requests: cpu: "1" memory: 1Gi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /home/jovyan name: restore-data workingDir: /home/jovyan volumes: - name: restore-data persistentVolumeClaim: claimName: RESTORED_PVC_NAME- Reemplaza lo siguiente: - PROJECT_NAMESPACE: Es el espacio de nombres del proyecto en el que creaste la instancia de JupyterLab.
- IMAGE_NAME: Es el nombre de la imagen del contenedor que ejecuta la instancia de JupyterLab.
- RESTORED_PVC_NAME: Es el nombre del recurso- PersistentVolumeClaimrestaurado.
 
- Crea un pod nuevo para el recurso - PersistentVolumeClaimrestablecido:- kubectl apply -f ./vtxwb-data --kubeconfig KUBECONFIG_PATH- Reemplaza - KUBECONFIG_PATHpor la ruta de acceso del archivo kubeconfig en el clúster.
- Espera a que el pod - vtxwb-dataalcance el estado- RUNNING.
- Copia los datos restablecidos en una nueva instancia de JupyterLab: - kubectl cp PROJECT_NAMESPACE/vtxwb-data:/home/jovyan ./restore --kubeconfig KUBECONFIG_PATH kubectl cp ./restore PROJECT_NAMESPACE/POD_NAME:/home/jovyan/restore --kubeconfig KUBECONFIG_PATH rm ./restore- Reemplaza lo siguiente: - PROJECT_NAMESPACE: Es el espacio de nombres del proyecto en el que creaste la instancia de JupyterLab.
- KUBECONFIG_PATH: Es la ruta de acceso del archivo kubeconfig en el clúster.
- POD_NAME: Es el nombre del Pod de la instancia de JupyterLab.
 - Después de copiar los datos, los datos restablecidos estarán disponibles en el directorio - /home/jovyan/restore.
- Borra el pod que creaste para acceder a los datos restaurados: - kubectl delete pod vtxwb-data -n my-namespace` --kubeconfig KUBECONFIG_PATH- Reemplaza - KUBECONFIG_PATHpor la ruta de acceso al archivo kubeconfig en el clúster.