Mit Google Distributed Cloud (GDC) air-gapped können Sie Sicherungen erstellen und Daten aus dem Home-Verzeichnis Ihrer JupyterLab-Instanzen wiederherstellen.
Auf dieser Seite wird beschrieben, wie Sie Sicherungen von Vertex AI Workbench-Notebookdaten erstellen und wiederherstellen. Wenn Sie Vertex AI noch nicht kennen, finden Sie weitere Informationen unter Vertex AI Workbench.
Hinweis
Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „User Cluster Developer“ (user-cluster-developer) zuzuweisen, damit Sie die Berechtigungen zum Kopieren wiederhergestellter Daten erhalten.
Sicherung erstellen und Daten der JupyterLab-Instanz wiederherstellen
Definieren Sie geschützte Anwendungen, um eine Sicherung des Home-Verzeichnisses einer einzelnen JupyterLab-Instanz oder der Home-Verzeichnisse aller JupyterLab-Instanzen in einem Projekt gleichzeitig zu erstellen.
Erstellen Sie eine benutzerdefinierte Ressource ProtectedApplication in dem Cluster, in dem Sie Sicherungen planen möchten. In Sicherungs- und Wiederherstellungsplänen werden geschützte Anwendungen verwendet, um Ressourcen auszuwählen. Informationen zum Erstellen geschützter Anwendungen finden Sie unter
Strategien für geschützte Anwendungen.
Die benutzerdefinierte Ressource ProtectedApplication enthält die folgenden Felder:
| Feld | Beschreibung | |||
|---|---|---|---|---|
resourceSelection |
Die Art und Weise, wie das ProtectedApplication-Objekt Ressourcen für Sicherungen oder Wiederherstellungen auswählt. |
|||
type |
Die Methode zum Auswählen von Ressourcen. Der Typ Selector gibt an, dass Ressourcen mit übereinstimmenden Labels ausgewählt werden müssen. |
|||
selector |
Die Auswahlregeln. Dieses Feld enthält die folgenden Unterfelder: | |||
matchLabels |
Die Labels, die das ProtectedApplication-Objekt verwendet, um Ressourcen abzugleichen. Dieses Feld enthält die folgenden Unterfelder: |
|||
app.kubernetes.io/part-of |
Der Name einer Anwendung auf höherer Ebene, zu der diese gehört. Wählen Sie Vertex AI Workbench als Anwendung auf höherer Ebene für JupyterLab-Instanzen aus. | |||
app.kubernetes.io/component |
Die Komponente in der Architektur. Wählen Sie Ressourcen aus Vertex AI Workbench aus, die Speicher für JupyterLab-Instanzen bereitstellen. | |||
app.kubernetes.io/instance |
Ein eindeutiger Name zur Identifizierung der Instanz einer Anwendung. Beschränken Sie den Bereich, um eine JupyterLab-Instanz auszuwählen. Der Wert entspricht dem Namen der JupyterLab-Instanz in der GDC Console. | |||
Verwenden Sie die benutzerdefinierte Ressource ProtectedApplication, um den Speicher einer einzelnen JupyterLab-Instanz oder aller JupyterLab-Instanzen in einem Projekt auszuwählen, wie in den folgenden Beispielen:
Speicher einer einzelnen JupyterLab-Instanz auswählen:
Das folgende Beispiel zeigt eine benutzerdefinierte Ressource
ProtectedApplication, die den Speicher für eine JupyterLab-Instanz mit dem Namenmy-instance-nameim Namespacemy-projectauswählt: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-nameSpeicher aller JupyterLab-Instanzen auswählen:
Das folgende Beispiel zeigt eine benutzerdefinierte Ressource
ProtectedApplication, die den Speicher für alle JupyterLab-Instanzen im Namespacemy-projectauswählt: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: storageDieses Beispiel enthält nicht das Label
app.kubernetes.io/instance, da alle JupyterLab-Instanzen ausgewählt werden.
Wenn Sie eine Sicherung erstellen und Daten aus einer JupyterLab-Instanz wiederherstellen möchten,
planen Sie eine Reihe von Sicherungen
und planen Sie eine Reihe von Wiederherstellungen
mit der von Ihnen definierten benutzerdefinierten Ressource ProtectedApplication.
Wiederhergestellte Daten in eine neue JupyterLab-Instanz kopieren
So kopieren Sie wiederhergestellte Daten aus der Ressource PersistentVolumeClaim einer JupyterLab-Instanz in eine neue JupyterLab-Instanz:
- Erfüllen Sie die Voraussetzungen.
- Erstellen Sie ein JupyterLab-Notebook das mit einer JupyterLab-Instanz verknüpft ist, um wiederhergestellte Daten zu kopieren.
Rufen Sie den Pod-Namen der JupyterLab-Instanz ab, in der Sie das Notebook erstellt haben:
kubectl get pods -l notebook-name=INSTANCE_NAME -n PROJECT_NAMESPACEErsetzen Sie Folgendes:
INSTANCE_NAME: der Name der von Ihnen konfigurierten JupyterLab-Instanz.PROJECT_NAMESPACE: der Projekt-Namespace, in dem Sie die JupyterLab-Instanz erstellt haben.
Rufen Sie den Namen des Images ab, auf dem die JupyterLab-Instanz ausgeführt wird:
kubectl get pods POD_NAME -n PROJECT_NAMESPACE -o jsonpath="{.spec.containers[0].image}"Ersetzen Sie Folgendes:
POD_NAME: der Pod-Name der JupyterLab-Instanz.PROJECT_NAMESPACE: der Projekt-Namespace, in dem Sie die JupyterLab-Instanz erstellt haben.
Suchen Sie den Namen der wiederhergestellten Ressource
PersistentVolumeClaim:kubectl get pvc -l app.kubernetes.io/part-of=vtxwb,app.kubernetes.io/component=storage,app.kubernetes.io/instance=RESTORED_INSTANCE_NAME -n PROJECT_NAMESPACEErsetzen Sie Folgendes:
RESTORED_INSTANCE_NAME: der Name der JupyterLab-Instanz, die Sie wiederhergestellt haben.PROJECT_NAMESPACE: der Projekt-Namespace, in dem Sie die JupyterLab-Instanz erstellt haben.
Erstellen Sie eine YAML-Datei mit dem Namen
vtxwb-data.yamlmit folgendem Inhalt: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_NAMEErsetzen Sie Folgendes:
PROJECT_NAMESPACE: der Projekt-Namespace, in dem Sie die JupyterLab-Instanz erstellt haben.IMAGE_NAME: der Name des Container-Images, auf dem die JupyterLab-Instanz ausgeführt wird.RESTORED_PVC_NAME: der Name der wiederhergestellten RessourcePersistentVolumeClaim.
Erstellen Sie einen neuen Pod für die wiederhergestellte Ressource
PersistentVolumeClaim:kubectl apply -f ./vtxwb-data --kubeconfig KUBECONFIG_PATHErsetzen Sie
KUBECONFIG_PATHdurch den Pfad der kubeconfig-Datei im Cluster.Warten Sie, bis der Pod
vtxwb-dataden StatusRUNNINGerreicht hat.Kopieren Sie die wiederhergestellten Daten in eine neue JupyterLab-Instanz:
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 ./restoreErsetzen Sie Folgendes:
PROJECT_NAMESPACE: der Projekt-Namespace, in dem Sie die JupyterLab-Instanz erstellt haben.KUBECONFIG_PATH: der Pfad der kubeconfig-Datei im Cluster.POD_NAME: der Pod-Name der JupyterLab-Instanz.
Nach dem Kopieren der Daten sind die wiederhergestellten Daten im Verzeichnis
/home/jovyan/restoreverfügbar.Löschen Sie den Pod, den Sie erstellt haben, um auf die wiederhergestellten Daten zuzugreifen:
kubectl delete pod vtxwb-data -n my-namespace` --kubeconfig KUBECONFIG_PATHErsetzen Sie
KUBECONFIG_PATHdurch den Pfad der kubeconfig-Datei im Cluster.