Mit Google Distributed Cloud (GDC) mit Air Gap können Sie Sicherungen erstellen und Daten aus dem Basisverzeichnis 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, erfahren Sie hier mehr über Vertex AI Workbench.
Hinweis
Bitten Sie Ihren IAM-Organisationsadministrator, Ihnen die Rolle „User Cluster Developer“ (user-cluster-developer) zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Kopieren wiederhergestellter Daten benötigen.
Sicherung erstellen und JupyterLab-Instanzdaten wiederherstellen
Definieren Sie geschützte Anwendungen, um eine Sicherung des Basisverzeichnisses einer einzelnen JupyterLab-Instanz oder der Basisverzeichnisse aller JupyterLab-Instanzen in einem Projekt auf einmal zu erstellen.
Erstellen Sie eine benutzerdefinierte ProtectedApplication-Ressource 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 untergeordneten Felder: | |||
matchLabels |
Die Labels, die das ProtectedApplication-Objekt zum Abgleich von Ressourcen verwendet. Dieses Feld enthält die folgenden untergeordneten Felder: |
|||
app.kubernetes.io/part-of |
Der Name einer übergeordneten Anwendung, zu der diese Anwendung gehört. Wählen Sie Vertex AI Workbench als übergeordnete Anwendung für JupyterLab-Instanzen aus. | |||
app.kubernetes.io/component |
Die Komponente innerhalb 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, der die Instanz einer Anwendung identifiziert. Wählen Sie eine JupyterLab-Instanz aus. Der Wert entspricht dem Namen der JupyterLab-Instanz in der GDC-Konsole. | |||
Wählen Sie mit der benutzerdefinierten Ressource ProtectedApplication den Speicher einer einzelnen JupyterLab-Instanz oder aller JupyterLab-Instanzen in einem Projekt aus, wie in den folgenden Beispielen gezeigt:
Speicher einer einzelnen JupyterLab-Instanz auswählen:
Das folgende Beispiel zeigt eine benutzerdefinierte
ProtectedApplication-Ressource, die den Speicher für eine JupyterLab-Instanz namensmy-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
ProtectedApplication-Ressource, 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 das Label
app.kubernetes.io/instancenicht, 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 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 PersistentVolumeClaim-Ressource einer JupyterLab-Instanz in eine neue JupyterLab-Instanz:
- Voraussetzungen erfüllen
- 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
PersistentVolumeClaim-Ressource: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.yamlund dem folgenden 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 wiederhergestelltenPersistentVolumeClaim-Ressource.
Erstellen Sie einen neuen Pod für die wiederhergestellte
PersistentVolumeClaim-Ressource: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 für den Zugriff auf die wiederhergestellten Daten erstellt haben:
kubectl delete pod vtxwb-data -n PROJECT_NAMESPACE \ --kubeconfig KUBECONFIG_PATHErsetzen Sie Folgendes:
PROJECT_NAMESPACE: Namespace Ihres Projekts.KUBECONFIG_PATH: der Pfad der kubeconfig-Datei im Cluster.