Membuat instance menggunakan penampung kustom
Halaman ini menjelaskan cara membuat instance Vertex AI Workbench berdasarkan container kustom.
Ringkasan
Instance Vertex AI Workbench mendukung penggunaan container kustom yang berasal dari salah satu container dasar yang disediakan Google. Anda dapat mengubah container dasar ini untuk membuat image container kustom dan menggunakan container kustom ini untuk membuat instance Vertex AI Workbench.
Container dasar dikonfigurasi dengan OS yang Dioptimalkan untuk
Container di virtual machine (VM)
host. Image host dibuat dari keluarga image
cos-stable
.
Batasan
Pertimbangkan batasan berikut saat merencanakan project Anda:
Penampung kustom harus berasal dari penampung dasar yang disediakan Google. Menggunakan penampung yang tidak berasal dari penampung dasar akan meningkatkan risiko masalah kompatibilitas dan membatasi kemampuan kami untuk mendukung penggunaan instance Vertex AI Workbench Anda.
Penggunaan lebih dari satu penampung dengan instance Vertex AI Workbench tidak didukung.
Metadata yang didukung untuk penampung kustom dari notebook yang dikelola pengguna dan notebook terkelola dapat memiliki perilaku yang berbeda saat digunakan dengan instance Vertex AI Workbench.
VM yang menghosting penampung kustom berjalan dari Container-Optimized OS, yang membatasi cara Anda berinteraksi dengan mesin host. Misalnya, Container-Optimized OS tidak menyertakan pengelola paket. Hal ini berarti bahwa paket yang bertindak pada host harus dilakukan pada penampung dengan pemasangan. Hal ini memengaruhi skrip pasca-startup yang dimigrasikan dari instance notebook terkelola dan instance notebook yang dikelola pengguna, dengan komputer host yang berisi lebih banyak alat daripada Container-Optimized OS.
Instance Vertex AI Workbench menggunakan
nerdctl
(CLI containerd) untuk menjalankan container kustom. Hal ini diperlukan untuk kompatibilitas dengan layanan Streaming gambar. Setiap parameter penampung yang ditambahkan menggunakan nilai metadata harus mematuhi apa yang didukung olehnerdctl
.Instance Vertex AI Workbench dikonfigurasi untuk mengambil dari Artifact Registry atau repositori container publik. Untuk mengonfigurasi instance agar dapat mengambil dari repositori pribadi, Anda harus mengonfigurasi kredensial yang digunakan oleh containerd secara manual.
Penampung dasar
Penampung dasar standar
Penampung dasar standar mendukung semua fitur Vertex AI Workbench dan mencakup hal berikut:
- Paket data science bawaan.
- Library Cuda yang mirip dengan Deep Learning Containers.
- Google Cloud Integrasi JupyterLab seperti integrasi Dataproc dan BigQuery.
- Paket sistem umum seperti
curl
ataugit
. - Konfigurasi JupyterLab berbasis metadata.
- Pengelolaan kernel berbasis Micromamba.
Spesifikasi
Penampung dasar standar memiliki spesifikasi berikut:
- Image dasar:
nvidia/cuda:12.6.1-cudnn-devel-ubuntu22.04
- Ukuran gambar: Sekitar 22 GB
- URI:
us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container:latest
Penampung dasar ramping
Penampung dasar ramping menyediakan kumpulan konfigurasi minimal yang mengizinkan koneksi proxy ke instance. Fitur dan paket Vertex AI Workbench standar tidak disertakan, kecuali untuk hal berikut:
- JupyterLab
- Konfigurasi JupyterLab berbasis metadata
- Pengelolaan kernel berbasis Micromamba
Paket tambahan atau ekstensi JupyterLab harus diinstal dan dikelola secara independen.
Spesifikasi
Penampung dasar ramping memiliki spesifikasi berikut:
- Image dasar:
marketplace.gcr.io/google/ubuntu22041
- Ukuran gambar: Sekitar 2 GB
- URI:
us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container-slim:latest
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Notebooks API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Notebooks API.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk membuat instance Vertex AI Workbench dengan penampung kustom, minta administrator untuk memberi Anda peran IAM berikut:
-
Notebooks Runner (
roles/notebooks.runner
) di akun pengguna -
Untuk mengambil image dari repositori Artifact Registry:
Pembaca Artifact Registry (
roles/artifactregistry.reader
) di akun layanan
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat container kustom
Untuk membuat penampung kustom yang akan digunakan dengan instance Vertex AI Workbench:
Buat container turunan yang berasal dari image container dasar yang disediakan Google.
Build dan kirim container ke Artifact Registry. Anda akan menggunakan URI penampung saat membuat instance Vertex AI Workbench. Misalnya, URI mungkin terlihat seperti ini:
gcr.io/PROJECT_ID/IMAGE_NAME
.
Buat instance
Anda dapat membuat instance Vertex AI Workbench berdasarkan penampung kustom menggunakan konsol Google Cloud atau Google Cloud CLI.
Konsol
Untuk membuat instance Vertex AI Workbench berdasarkan container kustom, lakukan tindakan berikut:
Di konsol Google Cloud, buka halaman Instance.
Klik
Buat baru.Dalam dialog Instance baru, klik Opsi lanjutan.
Pada dialog Create instance, di bagian Environment, pilih Use custom container.
Untuk Image container Docker, klik Select.
Di dialog Select container image, buka image container yang ingin Anda gunakan, lalu klik Select.
Opsional. Untuk Post-startup script, masukkan jalur ke skrip pasca-startup yang ingin Anda gunakan.
Opsional. Tambahkan metadata untuk instance Anda. Untuk mempelajari lebih lanjut, lihat Metadata penampung kustom.
Opsional. Di bagian Networking, sesuaikan setelan jaringan Anda. Untuk mempelajari lebih lanjut, lihat Opsi konfigurasi jaringan.
Selesaikan dialog pembuatan instance lainnya, lalu klik Buat.
Vertex AI Workbench membuat sebuah instance dan otomatis memulainya. Saat instance siap digunakan, Vertex AI Workbench akan mengaktifkan link Open JupyterLab.
gcloud
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
INSTANCE_NAME
: nama instance Vertex AI Workbench Anda; harus dimulai dengan huruf, diikuti dengan maksimal 62 huruf kecil, angka, atau tanda hubung (-), dan tidak boleh diakhiri dengan tanda hubung PROJECT_ID
: project ID AndaLOCATION
: zona tempat Anda ingin menempatkan instance-
CUSTOM_CONTAINER_PATH
: jalur ke repositori image container, misalnya:gcr.io/PROJECT_ID/IMAGE_NAME
-
METADATA
: metadata kustom yang akan diterapkan ke instance ini; misalnya, guna menentukan post-startup-script, Anda dapat menggunakan tag metadatapost-startup-script
, dalam format:"--metadata=post-startup-script=gs://BUCKET_NAME/hello.sh"
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud workbench instances create INSTANCE_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --container-repository=CUSTOM_CONTAINER_URL \ --container-tag=latest \ --metadata=METADATA
Windows (PowerShell)
gcloud workbench instances create INSTANCE_NAME ` --project=PROJECT_ID ` --location=LOCATION ` --container-repository=CUSTOM_CONTAINER_URL ` --container-tag=latest ` --metadata=METADATA
Windows (cmd.exe)
gcloud workbench instances create INSTANCE_NAME ^ --project=PROJECT_ID ^ --location=LOCATION ^ --container-repository=CUSTOM_CONTAINER_URL ^ --container-tag=latest ^ --metadata=METADATA
Untuk mengetahui informasi lebih lanjut tentang perintah untuk membuat instance dari command line, baca dokumentasi gcloud CLI.
Vertex AI Workbench membuat sebuah instance dan otomatis memulainya. Saat instance siap digunakan, Vertex AI Workbench akan mengaktifkan link Open JupyterLab di Konsol Google Cloud.
Opsi konfigurasi jaringan
Selain opsi jaringan umum, instance Vertex AI Workbench dengan penampung kustom harus memiliki akses ke layanan Artifact Registry.
Jika Anda telah menonaktifkan akses IP publik untuk VPC, pastikan Anda telah mengaktifkan Akses Google Pribadi.
Mengaktifkan streaming Image
Host penampung kustom disediakan untuk berinteraksi dengan streaming Image di Google Kubernetes Engine (GKE), yang menarik penampung lebih cepat dan mengurangi waktu inisialisasi untuk penampung besar setelah di-cache di sistem file jarak jauh GKE.
Untuk melihat persyaratan mengaktifkan Streaming image, lihat Persyaratan. Sering kali, streaming Image dapat digunakan dengan instance Vertex AI Workbench dengan mengaktifkan Container File System API.
Aktifkan Container File System API
Cara VM host menjalankan penampung kustom
Daripada menggunakan Docker untuk menjalankan penampung kustom, VM host menggunakan
nerdctl
di bawah namespace Kubernetes untuk memuat dan menjalankan
penampung. Hal ini memungkinkan Vertex AI Workbench menggunakan streaming Image untuk container kustom.
# Runs the custom container. sudo /var/lib/google/nerdctl/nerdctl --snapshotter=gcfs -n k8s.io run --name payload-container
Contoh penginstalan: penampung kustom dengan kernel default kustom
Contoh berikut menunjukkan cara membuat kernel baru dengan paket pip yang telah diinstal sebelumnya.
Buat penampung kustom baru:
FROM us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container:latest ENV MAMBA_ROOT_PREFIX=/opt/micromamba RUN micromamba create -n ENVIRONMENT_NAME -c conda-forge python=PYTHON_VERSION -y SHELL ["micromamba", "run", "-n", "ENVIRONMENT_NAME", "/bin/bash", "-c"] RUN micromamba install -c conda-forge pip -y RUN pip install PACKAGE RUN pip install ipykernel RUN python -m ipykernel install --prefix /opt/micromamba/envs/ENVIRONMENT_NAME --name ENVIRONMENT_NAME --display-name KERNEL_NAME # Creation of a micromamba kernel automatically creates a python3 kernel # that must be removed if it's in conflict with the new kernel. RUN rm -rf "/opt/micromamba/envs/ENVIRONMENT_NAME/share/jupyter/kernels/python3"
Tambahkan penampung baru ke Artifact Registry:
gcloud auth configure-docker REGION-docker.pkg.dev docker build -t REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/IMAGE_NAME . docker push REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/IMAGE_NAME:latest
Buat instance:
gcloud workbench instances create INSTANCE_NAME \ --project=PROJECT_ID \ --location=ZONE \ --container-repository=REGION-docker.pkg.dev/PROJECT_ID/IMAGE_NAME \ --container-tag=latest
Kernel persisten untuk container kustom
Penampung kustom Vertex AI Workbench hanya memasang disk data ke
direktori /home/USER
dalam setiap penampung,
dengan jupyter
adalah pengguna default. Ini berarti bahwa
setiap perubahan di luar /home/USER
bersifat sementara dan
tidak akan tetap ada setelah dimulai ulang. Jika Anda memerlukan paket terinstal untuk dipertahankan
untuk kernel tertentu, Anda dapat membuat kernel di
direktori /home/USER
.
Untuk membuat kernel di direktori /home/USER
:
Buat lingkungan micromamba:
micromamba create -p /home/USER/ENVIRONMENT_NAME -c conda-forge python=3.11 -y micromamba activate /home/USER/ENVIRONMENT_NAME pip install ipykernel pip install -r ~/requirement.txt python -m ipykernel install --prefix "/home/USER/ENVIRONMENT_NAME" --display-name "Example Kernel"
Ganti kode berikut:
- USER: nama direktori pengguna, yang secara default adalah
jupyter
- ENVIRONMENT_NAME: nama lingkungan
- PYTHON_VERSION: versi Python, misalnya
3.11
- USER: nama direktori pengguna, yang secara default adalah
Tunggu 30 detik hingga 1 menit sampai kernel dimuat ulang.
Memperbarui pengaktifan penampung dasar
Penampung dasar untuk instance Vertex AI Workbench
(us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container:latest
)
memulai JupyterLab dengan menjalankan /run_jupyter.sh
.
Jika Anda mengubah startup container dalam container turunan, Anda harus
menambahkan /run_jupyter.sh
untuk menjalankan konfigurasi default JupyterLab.
Berikut adalah contoh cara Dockerfile dapat diubah:
# DockerFile FROM us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container:latest # Override the existing CMD directive from the base container. CMD ["/startup_file.sh"]
# /startup_file.sh
echo "Running startup scripts"
...
/run_jupyter.sh
Memperbarui Konfigurasi JupyterLab dalam penampung dasar
Jika perlu mengubah konfigurasi JupyterLab di penampung dasar, Anda harus melakukan hal berikut:
Pastikan JupyterLab dikonfigurasi ke port 8080. Agen proxy kami dikonfigurasi untuk meneruskan permintaan apa pun ke port 8080 dan jika server jupyter tidak memproses port yang benar, instance akan mengalami masalah penyediaan.
Ubah paket JupyterLab di lingkungan micromamba
jupyterlab
. Kami menyediakan lingkungan paket terpisah untuk menjalankan JupyterLab dan pluginnya untuk memastikan tidak ada konflik dependensi dengan lingkungan kernel. Jika ingin menginstal ekstensi JupyterLab tambahan, Anda harus menginstalnya dalam lingkunganjupyterlab
. Contoh:# DockerFile FROM us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container:latest RUN micromamba activate jupyterlab && \ jupyter nbextension install nbdime
Metadata Penampung Kustom
Selain daftar standar metadata yang dapat diterapkan ke instance Vertex AI Workbench, instance dengan penampung kustom menyertakan metadata berikut untuk mengelola pembuatan instance penampung payload:
Fitur | Deskripsi | Kunci metadata | Nilai dan default yang diterima |
---|---|---|---|
Mengaktifkan Cloud Storage FUSE pada image container |
Memasang |
container-allow-fuse |
|
Parameter operasi penampung tambahan |
Menambahkan parameter penampung tambahan ke |
container-custom-params |
String parameter operasi penampung. Contoh:
|
Flag lingkungan penampung tambahan |
Menyimpan variabel Lingkungan ke dalam flag di bagian
|
container-env-file |
String variabel lingkungan penampung. Contoh:
|
Mengupgrade Container Kustom
Saat dimulai untuk pertama kalinya, instance akan mengambil image container
dari URI yang disimpan dalam metadata custom-container-payload
.
Jika Anda menggunakan tag :latest
, penampung akan diperbarui pada setiap mulai ulang. Nilai metadata custom-container-payload
tidak dapat diubah secara langsung karena merupakan
kunci metadata yang dilindungi.
Untuk mengupdate image penampung kustom instance, Anda dapat menggunakan metode berikut yang didukung oleh Google Cloud CLI, Terraform, atau Notebooks API.
gcloud
Anda dapat memperbarui metadata image container kustom di instance Vertex AI Workbench menggunakan perintah berikut:
gcloud workbench instances update INSTANCE_NAME \ --container-repository=CONTAINER_URI \ --container-tag=CONTAINER_TAG
Terraform
Anda dapat mengubah kolom container_image
dalam konfigurasi terraform untuk memperbarui payload penampung.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
resource "google_workbench_instance" "default" { name = "workbench-instance-example" location = "us-central1-a" gce_setup { machine_type = "n1-standard-1" container_image { repository = "us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container" family = "latest" } } }
Notebooks API
Gunakan metode instances.patch
dengan perubahan pada gce_setup.container_image.repository
dan gce_setup.container_image.tag
di updateMask
.
Menjalankan alat diagnostik
Alat diagnostik memeriksa dan memverifikasi status berbagai layanan Vertex AI Workbench. Untuk mempelajari lebih lanjut, lihat Tugas yang dilakukan oleh alat diagnostik.
Saat Anda membuat instance Vertex AI Workbench menggunakan penampung kustom, alat diagnostik tidak tersedia sebagai skrip di lingkungan host yang dapat dijalankan pengguna. Sebagai gantinya, kode ini dikompilasi menjadi biner dan dimuat ke dalam penampung runtime Google yang dibuat untuk menjalankan layanan diagnostik di lingkungan Container-Optimized OS. Lihat Ringkasan Container-Optimized OS.
Untuk menjalankan alat diagnostik, selesaikan langkah-langkah berikut:
Gunakan ssh untuk terhubung ke instance Vertex AI Workbench.
Di terminal SSH, jalankan perintah berikut:
sudo docker exec diagnostic-service ./diagnostic_tool
Untuk melihat opsi perintah tambahan, jalankan perintah berikut:
sudo docker exec diagnostic-service ./diagnostic_tool --help
Untuk informasi selengkapnya tentang opsi alat diagnostik, lihat dokumentasi status kondisi pemantauan.
Untuk menjalankan alat diagnostik menggunakan REST API, lihat dokumentasi REST API.
Mengakses instance
Anda dapat mengakses instance melalui URL proxy.
Setelah instance dibuat dan aktif, Anda bisa mendapatkan URL proxy menggunakan gcloud CLI.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
INSTANCE_NAME
: nama instance Vertex AI Workbench Anda PROJECT_ID
: project ID AndaLOCATION
adalah zona tempat instance Anda berada.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud workbench instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --location=LOCATION | grep proxy-url
Windows (PowerShell)
gcloud workbench instances describe INSTANCE_NAME ` --project=PROJECT_ID ` --location=LOCATION | grep proxy-url
Windows (cmd.exe)
gcloud workbench instances describe INSTANCE_NAME ^ --project=PROJECT_ID ^ --location=LOCATION | grep proxy-url
proxy-url: 7109d1b0d5f850f-dot-datalab-vm-staging.googleusercontent.com
Perintah describe
menampilkan URL proxy Anda. Untuk mengakses instance, buka URL proxy di browser web.
Untuk mengetahui informasi selengkapnya tentang perintah untuk mendeskripsikan instance dari command line, lihat dokumentasi gcloud CLI.