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, erfahren Sie mehr über Vertex AI Workbench.
Hinweise
Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „User Cluster Developer“ (user-cluster-developer
) zuzuweisen, damit Sie die Berechtigungen erhalten, die Sie zum Kopieren wiederhergestellter Daten benötigen.
JupyterLab-Instanzdaten sichern und 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 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 ProtectedApplication
-Ressource 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. Ein Selector -Typ 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 vom ProtectedApplication -Objekt zum Abgleichen von Ressourcen verwendet werden. 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 der obersten Ebene 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 bieten. | |||
app.kubernetes.io/instance |
Ein eindeutiger Name zur Identifizierung der Instanz einer Anwendung. Schränken Sie den Bereich ein, um eine JupyterLab-Instanz auszuwählen. Der Wert entspricht dem Namen der JupyterLab-Instanz in der GDC-Konsole. |
Verwenden Sie die benutzerdefinierte Ressource ProtectedApplication
, um den Speicherort 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
ProtectedApplication
-Ressource, die den Speicher für eine JupyterLab-Instanz mit dem Namenmy-instance-name
im Namespacemy-project
auswä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-name
Speicher aller JupyterLab-Instanzen auswählen:
Das folgende Beispiel zeigt eine benutzerdefinierte
ProtectedApplication
-Ressource, die den Speicher für alle JupyterLab-Instanzen im Namespacemy-project
auswä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
Dieses 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 benutzerdefinierten Ressource ProtectedApplication
, die Sie definiert haben.
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 die wiederhergestellten 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_NAMESPACE
Ersetzen Sie Folgendes:
INSTANCE_NAME
: Der Name der 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
PersistentVolumeClaim
-Ressource, die wiederhergestellt wurde: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
Ersetzen 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.yaml
und 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_NAME
Ersetzen Sie Folgendes:
PROJECT_NAMESPACE
: Der Projekt-Namespace, in dem Sie die JupyterLab-Instanz erstellt haben.IMAGE_NAME
: Der Name des Container-Images, in 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_PATH
Ersetzen Sie
KUBECONFIG_PATH
durch den Pfad der kubeconfig-Datei im Cluster.Warten Sie, bis der
vtxwb-data
-Pod den StatusRUNNING
erreicht 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 ./restore
Ersetzen 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/restore
verfügbar.Löschen Sie den Pod, den Sie für den Zugriff auf Ihre wiederhergestellten Daten erstellt haben:
kubectl delete pod vtxwb-data -n my-namespace` --kubeconfig KUBECONFIG_PATH
Ersetzen Sie
KUBECONFIG_PATH
durch den Pfad der kubeconfig-Datei im Cluster.