Google Distributed Cloud (GDC) 實體隔離方案可讓您建立備份,並從 JupyterLab 執行個體的主目錄還原資料。
本頁面說明如何建立及還原 Vertex AI Workbench 筆記本資料的備份。如果您是 Vertex AI 新手,請進一步瞭解 Vertex AI Workbench。
事前準備
如要取得複製還原資料所需的權限,請要求 IAM 機構組織管理員授予您使用者叢集開發人員 (user-cluster-developer) 角色。
建立備份並還原 JupyterLab 執行個體資料
定義受保護的應用程式,一次建立個別 JupyterLab 執行個體主目錄的備份,或專案中所有 JupyterLab 執行個體主目錄的備份。
在要排定備份作業的叢集中,建立 ProtectedApplication 自訂資源。備份與還原方案會使用受保護的應用程式來選取資源。如要瞭解如何建立受保護的應用程式,請參閱「受保護的應用程式策略」。
ProtectedApplication 自訂資源包含下列欄位:
| 欄位 | 說明 | |||
|---|---|---|---|---|
resourceSelection |
ProtectedApplication 物件選取要備份或還原的資源的方式。 |
|||
type |
選取資源的方法。Selector 類型表示必須選取具有相符標籤的資源。 |
|||
selector |
選取規則。這個欄位包含下列子欄位: | |||
matchLabels |
ProtectedApplication 物件用來比對資源的標籤。這個欄位包含下列子欄位: |
|||
app.kubernetes.io/part-of |
這個應用程式所屬的上層應用程式名稱。選取 Vertex AI Workbench 做為 JupyterLab 執行個體的高階應用程式。 | |||
app.kubernetes.io/component |
架構中的元件。從 Vertex AI Workbench 選取為 JupyterLab 執行個體提供儲存空間的資源。 | |||
app.kubernetes.io/instance |
用於識別應用程式執行個體的專屬名稱。縮小範圍,選取 JupyterLab 執行個體。這個值與 GDC 控制台上的 JupyterLab 執行個體名稱相同。 | |||
使用 ProtectedApplication 自訂資源,選取單一 JupyterLab 執行個體或專案中所有 JupyterLab 執行個體的儲存空間,如以下範例所示:
選取單一 JupyterLab 執行個體的儲存空間:
以下範例顯示
ProtectedApplication自訂資源,可為my-project命名空間中名為my-instance-name的 JupyterLab 執行個體選取儲存空間: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選取所有 JupyterLab 執行個體的儲存空間:
以下範例顯示
ProtectedApplication自訂資源,可選取my-project命名空間中所有 JupyterLab 執行個體的儲存空間: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標籤,因為它會選取所有 JupyterLab 執行個體。
如要建立備份並從 JupyterLab 執行個體還原資料,請使用您定義的 ProtectedApplication 自訂資源,規劃一組備份和一組還原作業。
將還原的資料複製到新的 JupyterLab 執行個體
如要將還原的資料從 JupyterLab 執行個體的 PersistentVolumeClaim 資源複製到新的 JupyterLab 執行個體,請按照下列步驟操作:
- 符合先決條件。
- 建立與 JupyterLab 執行個體相關聯的 JupyterLab 筆記本,以便複製還原的資料。
取得筆記本所在 JupyterLab 執行個體的 Pod 名稱:
kubectl get pods -l notebook-name=INSTANCE_NAME -n PROJECT_NAMESPACE更改下列內容:
INSTANCE_NAME:您設定的 JupyterLab 執行個體名稱。PROJECT_NAMESPACE:您建立 JupyterLab 執行個體的專案命名空間。
取得 JupyterLab 執行個體正在執行的映像檔名稱:
kubectl get pods POD_NAME -n PROJECT_NAMESPACE -o jsonpath="{.spec.containers[0].image}"更改下列內容:
POD_NAME:JupyterLab 執行個體的 Pod 名稱。PROJECT_NAMESPACE:您建立 JupyterLab 執行個體的專案命名空間。
找出已還原的
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_NAMESPACE更改下列內容:
RESTORED_INSTANCE_NAME:還原的 JupyterLab 執行個體名稱。PROJECT_NAMESPACE:您建立 JupyterLab 執行個體的專案命名空間。
建立名為
vtxwb-data.yaml的 YAML 檔案,並加入下列內容: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更改下列內容:
PROJECT_NAMESPACE:您建立 JupyterLab 執行個體的專案命名空間。IMAGE_NAME:JupyterLab 執行個體執行的容器映像檔名稱。RESTORED_PVC_NAME:還原的PersistentVolumeClaim資源名稱。
為還原的
PersistentVolumeClaim資源建立新的 Pod:kubectl apply -f ./vtxwb-data --kubeconfig KUBECONFIG_PATH將
KUBECONFIG_PATH替換為叢集中的 kubeconfig 檔案路徑。等待
vtxwb-dataPod 達到RUNNING狀態。將還原的資料複製到新的 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更改下列內容:
PROJECT_NAMESPACE:您建立 JupyterLab 執行個體的專案命名空間。KUBECONFIG_PATH:叢集中 kubeconfig 檔案的路徑。POD_NAME:JupyterLab 執行個體的 Pod 名稱。
複製資料後,還原的資料會顯示在
/home/jovyan/restore目錄中。刪除您建立來存取還原資料的 Pod:
kubectl delete pod vtxwb-data -n PROJECT_NAMESPACE \ --kubeconfig KUBECONFIG_PATH更改下列內容:
PROJECT_NAMESPACE:專案的命名空間。KUBECONFIG_PATH:叢集中 kubeconfig 檔案的路徑。