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
ProtectedApplication
yang memilih penyimpanan untuk instance JupyterLab bernamamy-instance-name
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: storage app.kubernetes.io/instance: my-instance-name
Pilih penyimpanan semua instance JupyterLab:
Contoh berikut menunjukkan resource kustom
ProtectedApplication
yang 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: storage
Contoh ini tidak berisi label
app.kubernetes.io/instance
karena 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_NAMESPACE
Ganti 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
PersistentVolumeClaim
yang 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_NAMESPACE
Ganti 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.yaml
dengan 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_NAME
Ganti 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 resourcePersistentVolumeClaim
yang dipulihkan.
Buat pod baru untuk resource
PersistentVolumeClaim
yang dipulihkan:kubectl apply -f ./vtxwb-data --kubeconfig KUBECONFIG_PATH
Ganti
KUBECONFIG_PATH
dengan jalur file kubeconfig di cluster.Tunggu hingga pod
vtxwb-data
mencapai 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 ./restore
Ganti 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_PATH
Ganti
KUBECONFIG_PATH
dengan jalur file kubeconfig di cluster.