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 container dasar yang disediakan Google. Anda dapat mengubah penampung dasar ini untuk membuat image penampung kustom dan menggunakan penampung kustom ini untuk membuat instance Vertex AI Workbench.
Penampung dasar dikonfigurasi dengan OS yang Dioptimalkan untuk Container di mesin virtual (VM) host. Penampung dasar menyediakan paket data science yang telah diinstal sebelumnya dan konfigurasi tertentu yang memungkinkan instance Anda berintegrasi dengan Google Cloud.
Penampung dasar terletak di
gcr.io/deeplearning-platform-release/workbench-container:latest
.
Batasan
Pertimbangkan batasan berikut saat merencanakan project Anda:
Container kustom harus berasal dari container dasar yang disediakan Google (
gcr.io/deeplearning-platform-release/workbench-container:latest
). Menggunakan container yang tidak berasal dari container 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.
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 (
gcr.io/deeplearning-platform-release/workbench-container:latest
).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/jupyter/ENVIRONMENT_NAME -c conda-forge python=3.11 -y micromamba activate ENVIRONMENT_NAME pip install ipykernel pip install -r ~/requirement.txt python -m ipykernel install --prefix "/home/jupyter/ENVIRONMENT_NAME" --display-name "Example Kernel"
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 pengoperasian 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:
|
URI penampung payload |
Payload penampung kustom dengan JupyterLab yang ditarik ke instance Vertex AI Workbench. |
custom-container-payload |
String URI. Contoh:
|
Mengupgrade Container Kustom
Jika penampung kustom perlu diperbarui, Anda dapat melakukannya dengan memperbarui
nilai metadata custom-container-payload
dengan
URI penampung baru. Setiap mulai ulang container akan mencoba menarik
container dari URI yang disimpan di custom-container-payload
.
Jika Anda menggunakan tag :latest
, penampung dasar akan diperbarui pada setiap mulai ulang. Lihat contoh berikut:
custom-container-payload = us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container:latest
Untuk menghindari update penampung dasar, Anda dapat menentukan versinya. Lihat contoh berikut:
custom-container-payload = us-docker.pkg.dev/deeplearning-platform-release/gcr.io/workbench-container:20240920-2200-rc0
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.