Google Distributed Cloud (GDC) air-gapped ti consente di creare backup e ripristinare i dati dalla home directory delle tue istanze JupyterLab.
Questa pagina descrive la creazione e il ripristino dei backup dei dati dei notebook Vertex AI Workbench. Se non hai mai utilizzato Vertex AI, scopri di più su Vertex AI Workbench.
Prima di iniziare
Per ottenere le autorizzazioni necessarie per copiare i dati ripristinati, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Sviluppatore cluster utente (user-cluster-developer
).
Creare un backup e ripristinare i dati dell'istanza JupyterLab
Definisci le applicazioni protette per creare un backup della home directory di una singola istanza JupyterLab o delle home directory di tutte le istanze JupyterLab in un progetto contemporaneamente.
Crea una risorsa personalizzata ProtectedApplication
nel cluster in cui vuoi pianificare i backup. I piani di backup e ripristino utilizzano le applicazioni protette per selezionare le risorse. Per informazioni sulla creazione di applicazioni protette, vedi
Strategie per le applicazioni protette.
La risorsa personalizzata ProtectedApplication
contiene i seguenti campi:
Campo | Descrizione | |||
---|---|---|---|---|
resourceSelection |
Il modo in cui l'oggetto ProtectedApplication seleziona le risorse per i backup o i ripristini. |
|||
type |
Il metodo per selezionare le risorse. Un tipo Selector indica che devono essere selezionate le risorse con etichette corrispondenti. |
|||
selector |
Le regole di selezione. Questo campo contiene i seguenti campi secondari: | |||
matchLabels |
Le etichette che l'oggetto ProtectedApplication utilizza per trovare le risorse corrispondenti. Questo campo contiene i seguenti campi secondari: |
|||
app.kubernetes.io/part-of |
Il nome di un'applicazione di livello superiore di cui fa parte. Seleziona Vertex AI Workbench come applicazione di primo livello per le istanze JupyterLab. | |||
app.kubernetes.io/component |
Il componente all'interno dell'architettura. Seleziona le risorse di Vertex AI Workbench che forniscono spazio di archiviazione per le istanze JupyterLab. | |||
app.kubernetes.io/instance |
Un nome univoco che identifica l'istanza di un'applicazione. Restringi l'ambito per selezionare un'istanza JupyterLab. Il valore è uguale al nome dell'istanza JupyterLab nella console GDC. |
Utilizza la risorsa personalizzata ProtectedApplication
per selezionare lo spazio di archiviazione di una singola istanza JupyterLab o di tutte le istanze JupyterLab in un progetto, come nei seguenti esempi:
Seleziona lo spazio di archiviazione di una singola istanza JupyterLab:
L'esempio seguente mostra una risorsa personalizzata
ProtectedApplication
che seleziona lo spazio di archiviazione per un'istanza JupyterLab denominatamy-instance-name
nello spazio dei nomimy-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
Seleziona lo spazio di archiviazione di tutte le istanze JupyterLab:
L'esempio seguente mostra una risorsa personalizzata
ProtectedApplication
che seleziona lo spazio di archiviazione per tutte le istanze JupyterLab nello spazio dei nomimy-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
Questo esempio non contiene l'etichetta
app.kubernetes.io/instance
perché seleziona tutte le istanze JupyterLab.
Per creare un backup e ripristinare i dati da un'istanza JupyterLab,
pianifica un insieme di backup
e pianifica un insieme di ripristini
utilizzando la risorsa personalizzata ProtectedApplication
che hai definito.
Copia i dati ripristinati in una nuova istanza JupyterLab
Segui questi passaggi per copiare i dati ripristinati dalla risorsa PersistentVolumeClaim
di un'istanza JupyterLab a una nuova istanza JupyterLab:
- Soddisfare i prerequisiti.
- Crea un notebook JupyterLab associato a un'istanza JupyterLab per copiare i dati ripristinati.
Recupera il nome del pod dell'istanza JupyterLab in cui hai creato il blocco note:
kubectl get pods -l notebook-name=INSTANCE_NAME -n PROJECT_NAMESPACE
Sostituisci quanto segue:
INSTANCE_NAME
: il nome dell'istanza JupyterLab che hai configurato.PROJECT_NAMESPACE
: lo spazio dei nomi del progetto in cui hai creato l'istanza JupyterLab.
Recupera il nome dell'immagine su cui è in esecuzione l'istanza JupyterLab:
kubectl get pods POD_NAME -n PROJECT_NAMESPACE -o jsonpath="{.spec.containers[0].image}"
Sostituisci quanto segue:
POD_NAME
: il nome del pod dell'istanza JupyterLab.PROJECT_NAMESPACE
: lo spazio dei nomi del progetto in cui hai creato l'istanza JupyterLab.
Trova il nome della risorsa
PersistentVolumeClaim
che è stata ripristinata: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
Sostituisci quanto segue:
RESTORED_INSTANCE_NAME
: il nome dell'istanza JupyterLab che hai ripristinato.PROJECT_NAMESPACE
: lo spazio dei nomi del progetto in cui hai creato l'istanza JupyterLab.
Crea un file YAML denominato
vtxwb-data.yaml
con i seguenti contenuti: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
Sostituisci quanto segue:
PROJECT_NAMESPACE
: lo spazio dei nomi del progetto in cui hai creato l'istanza JupyterLab.IMAGE_NAME
: il nome dell'immagine container in cui è in esecuzione l'istanza JupyterLab.RESTORED_PVC_NAME
: il nome della risorsaPersistentVolumeClaim
ripristinata.
Crea un nuovo pod per la risorsa
PersistentVolumeClaim
ripristinata:kubectl apply -f ./vtxwb-data --kubeconfig KUBECONFIG_PATH
Sostituisci
KUBECONFIG_PATH
con il percorso del file kubeconfig nel cluster.Attendi che il pod
vtxwb-data
raggiunga lo statoRUNNING
.Copia i dati ripristinati in una nuova istanza 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
Sostituisci quanto segue:
PROJECT_NAMESPACE
: lo spazio dei nomi del progetto in cui hai creato l'istanza JupyterLab.KUBECONFIG_PATH
: il percorso del file kubeconfig nel cluster.POD_NAME
: il nome del pod dell'istanza JupyterLab.
Dopo aver copiato i dati, quelli ripristinati sono disponibili nella directory
/home/jovyan/restore
.Elimina il pod che hai creato per accedere ai dati ripristinati:
kubectl delete pod vtxwb-data -n my-namespace` --kubeconfig KUBECONFIG_PATH
Sostituisci
KUBECONFIG_PATH
con il percorso del file kubeconfig nel cluster.