Dengan Google Distributed Cloud (GDC) air-gapped, Anda dapat membuat cadangan dan memulihkan data dari direktori beranda instance JupyterLab Anda.
Halaman ini menjelaskan cara membuat dan memulihkan cadangan data notebook Vertex AI Workbench. Jika Anda baru menggunakan Vertex AI, pelajari lebih lanjut Vertex AI Workbench.
Sebelum memulai
Untuk mendapatkan izin yang diperlukan guna menyalin data yang dipulihkan, minta Admin IAM Organisasi Anda untuk memberi Anda peran User Cluster Developer (user-cluster-developer).
Membuat cadangan dan memulihkan data instance JupyterLab
Tentukan aplikasi yang dilindungi untuk membuat cadangan direktori beranda dari instance JupyterLab individual atau direktori beranda semua instance JupyterLab dalam project sekaligus.
Buat resource kustom ProtectedApplication di cluster tempat Anda ingin
menjadwalkan pencadangan. Paket pencadangan dan pemulihan menggunakan aplikasi yang dilindungi untuk memilih
resource. Untuk mengetahui informasi tentang cara membuat aplikasi yang dilindungi, lihat
Strategi aplikasi yang dilindungi.
Resource kustom ProtectedApplication berisi kolom berikut:
| Kolom | Deskripsi | |||
|---|---|---|---|---|
resourceSelection |
Cara objek ProtectedApplication memilih resource untuk pencadangan atau pemulihan. |
|||
type |
Metode untuk memilih resource. Jenis Selector menunjukkan bahwa resource dengan label yang cocok harus dipilih. |
|||
selector |
Aturan pemilihan. Kolom ini berisi sub-kolom berikut: | |||
matchLabels |
Label yang digunakan objek ProtectedApplication untuk mencocokkan resource. Kolom ini berisi sub-kolom berikut: |
|||
app.kubernetes.io/part-of |
Nama aplikasi tingkat yang lebih tinggi yang menjadi bagian dari aplikasi ini. Pilih Vertex AI Workbench sebagai aplikasi tingkat tinggi untuk instance JupyterLab. | |||
app.kubernetes.io/component |
Komponen dalam arsitektur. Pilih resource dari Vertex AI Workbench yang menyediakan penyimpanan untuk instance JupyterLab. | |||
app.kubernetes.io/instance |
Nama unik yang mengidentifikasi instance aplikasi. Persempit cakupan untuk memilih instance JupyterLab. Nilainya sama dengan nama instance JupyterLab di konsol GDC. | |||
Gunakan resource kustom ProtectedApplication untuk memilih penyimpanan satu instance JupyterLab atau semua instance JupyterLab dalam project, seperti dalam contoh berikut:
Pilih penyimpanan satu instance JupyterLab:
Contoh berikut menunjukkan resource kustom
ProtectedApplicationyang memilih penyimpanan untuk instance JupyterLab bernamamy-instance-namedi namespacemy-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-namePilih penyimpanan semua instance JupyterLab:
Contoh berikut menunjukkan resource kustom
ProtectedApplicationyang memilih penyimpanan untuk semua instance JupyterLab di namespacemy-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: storageContoh ini tidak berisi label
app.kubernetes.io/instancekarena memilih semua instance JupyterLab.
Untuk membuat cadangan dan memulihkan data dari instance JupyterLab, rencanakan serangkaian pencadangan dan rencanakan serangkaian pemulihan menggunakan resource kustom ProtectedApplication yang Anda tentukan.
Menyalin data yang dipulihkan ke instance JupyterLab baru
Ikuti langkah-langkah berikut untuk menyalin data yang dipulihkan dari resource PersistentVolumeClaim
instance JupyterLab ke instance JupyterLab baru:
- Memenuhi prasyarat.
- Buat notebook JupyterLab yang terkait dengan instance JupyterLab untuk menyalin data yang dipulihkan.
Dapatkan nama pod instance JupyterLab tempat Anda membuat notebook:
kubectl get pods -l notebook-name=INSTANCE_NAME -n PROJECT_NAMESPACEGanti kode berikut:
INSTANCE_NAME: nama instance JupyterLab yang Anda konfigurasi.PROJECT_NAMESPACE: namespace project tempat Anda membuat instance JupyterLab.
Dapatkan nama image yang dijalankan instance JupyterLab:
kubectl get pods POD_NAME -n PROJECT_NAMESPACE -o jsonpath="{.spec.containers[0].image}"Ganti kode berikut:
POD_NAME: nama pod instance JupyterLab.PROJECT_NAMESPACE: namespace project tempat Anda membuat instance JupyterLab.
Temukan nama resource
PersistentVolumeClaimyang dipulihkan:kubectl get pvc -l app.kubernetes.io/part-of=vtxwb,app.kubernetes.io/component=storage,app.kubernetes.io/instance=RESTORED_INSTANCE_NAME -n PROJECT_NAMESPACEGanti kode berikut:
RESTORED_INSTANCE_NAME: nama instance JupyterLab yang Anda pulihkan.PROJECT_NAMESPACE: namespace project tempat Anda membuat instance JupyterLab.
Buat file YAML bernama
vtxwb-data.yamldengan konten berikut: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_NAMEGanti kode berikut:
PROJECT_NAMESPACE: namespace project tempat Anda membuat instance JupyterLab.IMAGE_NAME: nama image container yang dijalankan oleh instance JupyterLab.RESTORED_PVC_NAME: nama resourcePersistentVolumeClaimyang dipulihkan.
Buat pod baru untuk resource
PersistentVolumeClaimyang dipulihkan:kubectl apply -f ./vtxwb-data --kubeconfig KUBECONFIG_PATHGanti
KUBECONFIG_PATHdengan jalur file kubeconfig di cluster.Tunggu hingga pod
vtxwb-datamencapai statusRUNNING.Menyalin data yang dipulihkan ke instance JupyterLab baru:
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 ./restoreGanti kode berikut:
PROJECT_NAMESPACE: namespace project tempat Anda membuat instance JupyterLab.KUBECONFIG_PATH: jalur file kubeconfig di cluster.POD_NAME: nama pod instance JupyterLab.
Setelah menyalin data, data yang dipulihkan tersedia di direktori
/home/jovyan/restore.Hapus pod yang Anda buat untuk mengakses data yang dipulihkan:
kubectl delete pod vtxwb-data -n my-namespace` --kubeconfig KUBECONFIG_PATHGanti
KUBECONFIG_PATHdengan jalur file kubeconfig di cluster.