Men-deploy workload

Operator workload dapat meneruskan opsi ke instance VM workload Confidential Space untuk menentukan perilakunya sebelum dijalankan. Meskipun beberapa flag memiliki nilai wajib yang tidak berubah, Anda tetap harus membuat pilihan berikut:

  • Apakah akan mendasarkan instance VM pada image Confidential Space produksi atau debug.

  • Apakah akan menggunakan AMD SEV, Intel TDX, atau Intel TDX dengan NVIDIA Confidential Computing untuk membantu menjaga privasi data workload Anda.

  • Variabel metadata VM yang perlu diteruskan, yang mencakup detail seperti image container workload yang akan dijalankan, layanan pengesahan yang akan digunakan, apakah akan mencatat log ke Cloud Logging, dan variabel lingkungan yang akan ditetapkan.

  • Akun layanan yang akan dipasang ke VM untuk menjalankan workload, dan izin yang diperlukan untuk mengakses data rahasia di project lain dan menulis hasilnya di suatu tempat.

  • Zona tempat instance VM harus dijalankan.

Berikut adalah contoh yang membuat Confidential VM, dan menjalankan container Docker bernama WORKLOAD_CONTAINER_NAME:

Workload berbasis CPU

gcloud compute instances create INSTANCE_NAME \
    --confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
    --machine-type=MACHINE_TYPE_NAME \
    --maintenance-policy=MAINTENANCE_POLICY \
    --shielded-secure-boot \
    --image-project=confidential-space-images \
    --image-family=IMAGE_FAMILY \
    --metadata="^~^tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest" \
    --service-account=WORKLOAD_SERVICE_ACCOUNT_NAME@WORKLOAD_OPERATOR_PROJECT_ID.iam.gserviceaccount.com \
    --scopes=cloud-platform \
    --zone=ZONE_NAME \
    --project=PROJECT_ID

Berikan nilai berikut:

  • INSTANCE_NAME: Nama instance VM baru.

  • CONFIDENTIAL_COMPUTING_TECHNOLOGY: Jenis teknologi Confidential Computing yang akan digunakan. Pilih salah satu nilai berikut:

    • SEV

    • TDX

  • MACHINE_TYPE_NAME: Jenis mesin VM, misalnya, n2d-standard-2. Jenis mesin yang valid untuk instance Confidential VM ditentukan oleh teknologi Confidential Computing yang Anda pilih, baik AMD SEV maupun Intel TDX. Lihat Jenis mesin.

  • MAINTENANCE_POLICY: Untuk jenis mesin N2D yang menggunakan SEV, tetapkan ini ke MIGRATE untuk dukungan migrasi langsung. Untuk semua jenis mesin lainnya, tetapkan nilai ini ke TERMINATE, karena jenis mesin tersebut tidak mendukung migrasi langsung.

  • IMAGE_FAMILY_NAME: Kelompok untuk image Confidential Space. Pilih salah satu opsi berikut:

    • confidential-space untuk workload produksi

    • confidential-space-debug untuk workload debug

  • Variabel metadata tambahan, yang mengubah perilaku VM, termasuk layanan pengesahan yang akan digunakan.

  • WORKLOAD_AUTHOR_PROJECT: ID project yang menghosting repositori Artifact Registry tempat container workload disimpan.

  • REPOSITORY_NAME: Nama repositori Artifact Registry tempat container workload disimpan.

  • WORKLOAD_CONTAINER_NAME: Nama container workload.

  • WORKLOAD_SERVICE_ACCOUNT_NAME: Nama akun layanan yang menjalankan workload.

  • WORKLOAD_OPERATOR_PROJECT_ID: ID project yang menjalankan workload.

  • ZONE_NAME: Zona tempat instance VM berjalan, misalnya, us-west1-b. Confidential Space memerlukan layanan berikut, yang tersedia di lokasi tertentu:

  • PROJECT_ID: Opsional. ID project tempat instance VM akan dibuat.

Workload berbasis GPU

Sebelum memulai

  • Confidential Space hanya mendukung Confidential Computing NVIDIA di GPU H100.

  • Untuk memastikan Anda memiliki kuota GPU yang cukup untuk resource yang Anda minta, periksa kuota GPU Anda. Untuk instance Confidential VM dengan GPU, minta kuota preemptible GPU untuk menggunakan resource tersebut. Saat meminta kuota GPU, Anda harus meminta kuota untuk model GPU yang ingin dibuat di setiap region, dan kuota global tambahan (GPUs (all regions)) untuk jumlah total semua jenis GPU di semua region.

  • Untuk memahami penggunaan kuota, baca VM GPU dan kuota alokasi preemptible.

  • Baca batasan untuk membuat permintaan perubahan ukuran di MIG.

  • Untuk menginstal driver yang diperlukan untuk Confidential Computing NVIDIA, Anda harus meneruskan variabel metadata tee-install-gpu-driver dengan nilai true.

  • Untuk driver NVIDIA dan toolkit CUDA, sebaiknya gunakan boot disk VM dengan ruang 30 GB atau lebih.

  • Untuk menggunakan aplikasi CUDA, library NVIDIA CUDA-X harus tersedia di image container yang Anda gunakan. Untuk menyertakan library, lakukan salah satu hal berikut:

    • Gunakan image container dengan library NVIDIA CUDA-X yang telah diinstal sebelumnya. Misalnya, Anda dapat menggunakan Deep Learning Containers Google untuk framework data science, library NVIDIA CUDA-X, dan alat tambahan yang telah diinstal sebelumnya. Atau, Anda dapat menggunakan image container CUDA NVIDIA hanya untuk library NVIDIA CUDA-X.

    • Buat dan gunakan image container Anda sendiri. Tetapkan variabel lingkungan LD_LIBRARY_PATH ke /usr/local/nvidia/lib64, yang harus berisi library NVIDIA CUDA-X dan driver perangkat.

Masalah umum

  • Saat menjalankan workload Confidential Space dengan GPU NVIDIA H100 terpasang, Anda mungkin melihat pesan error berikut:

    failed to get launchspec, make sure you're running inside
    a GCE VM: GPU Driver installation is not supported.
    

    Ini adalah masalah umum pada image Confidential Space. Untuk mengatasi masalah ini, mulai ulang Confidential VM.

Men-deploy workload berbasis GPU

Untuk men-deploy workload berbasis GPU, Anda harus membuat instance Confidential VM menggunakan model penyediaan spot atau flex-start.

Spot

Untuk menggunakan model penyediaan spot, buat instance VM yang dioptimalkan akselerator.

gcloud compute instances create INSTANCE_NAME \
    --provisioning-model=SPOT \
    --confidential-compute-type=TDX \
    --machine-type=a3-highgpu-1g \
    --maintenance-policy=TERMINATE \
    --shielded-secure-boot \
    --image-project=confidential-space-images \
    --image-family=IMAGE_FAMILY_NAME \
    --metadata="^~^tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest~tee-install-gpu-driver=true" \
    --service-account=WORKLOAD_SERVICE_ACCOUNT_NAME@WORKLOAD_OPERATOR_PROJECT_ID.iam.gserviceaccount.com \
    --scopes=cloud-platform \
    --boot-disk-size=30G \
    --zone=ZONE_NAME \
    --project=PROJECT_ID

Berikan nilai berikut:

  • INSTANCE_NAME: Nama instance VM baru.

  • IMAGE_FAMILY_NAME: Kelompok untuk image Confidential Space. Pilih salah satu opsi berikut:

    • confidential-space untuk workload produksi

    • confidential-space-debug untuk workload debug

  • Variabel metadata tambahan, yang mengubah perilaku VM, termasuk layanan pengesahan yang akan digunakan.

  • WORKLOAD_AUTHOR_PROJECT: Project ID tempat workload dijalankan.

  • REPOSITORY_NAME: Nama repositori Artifact Registry.

  • WORKLOAD_CONTAINER_NAME: Nama container workload.

  • WORKLOAD_SERVICE_ACCOUNT_NAME: Nama akun layanan yang menjalankan workload.

  • WORKLOAD_OPERATOR_PROJECT_ID: ID project yang menjalankan workload.

  • ZONE_NAME: Salah satu zona yang mendukung Confidential Computing NVIDIA.

  • PROJECT_ID: Opsional. ID project tempat instance VM akan dibuat.

Flex-start

Untuk menggunakan model penyediaan flex-start, buat template instance, diikuti dengan grup instance terkelola (MIG).

  1. Buat template instance:

    gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --provisioning-model=FLEX_START \
        --confidential-compute-type=TDX \
        --machine-type=a3-highgpu-1g \
        --maintenance-policy=TERMINATE \
        --shielded-secure-boot \
        --image-project=confidential-space-images \
        --image-family=IMAGE_FAMILY_NAME \
        --metadata="^~^tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest~tee-install-gpu-driver=true" \
        --service-account=WORKLOAD_SERVICE_ACCOUNT_NAME@WORKLOAD_OPERATOR_PROJECT_ID.iam.gserviceaccount.com \
        --scopes=cloud-platform \
        --boot-disk-size=30G \
        --max-run-duration=RUN_DURATION \
        --instance-termination-action=DELETE \
        --project=PROJECT_ID
    

    Berikan nilai berikut:

    • INSTANCE_TEMPLATE_NAME: Nama template instance VM baru.

    • IMAGE_FAMILY_NAME: Kelompok untuk image Confidential Space. Pilih salah satu opsi berikut:

      • confidential-space untuk workload produksi

      • confidential-space-debug untuk workload debug

    • WORKLOAD_AUTHOR_PROJECT: Project ID tempat workload dijalankan.

    • REPOSITORY_NAME: Nama repositori Artifact Registry.

    • WORKLOAD_CONTAINER_NAME: Nama container workload.

    • WORKLOAD_SERVICE_ACCOUNT_NAME: Nama akun layanan yang menjalankan workload.

    • WORKLOAD_OPERATOR_PROJECT_ID: ID project yang menjalankan workload.

    • RUN_DURATION: durasi yang Anda inginkan untuk menjalankan instance VM yang diminta. Anda harus memformat nilai sebagai jumlah hari, jam, menit, atau detik yang diikuti dengan d, h, m, atau s. Misalnya, tentukan 30m selama 30 menit atau 1d2h3m4s untuk satu hari, dua jam, tiga menit, dan empat detik. Nilai harus antara 10 menit dan tujuh hari.

    • PROJECT_ID: Opsional. ID project untuk membuat instance VM.

  2. Buat MIG zona menggunakan perintah instance-groups managed create:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --template=INSTANCE_TEMPLATE_NAME \
        --size=0 \
        --zone=ZONE_NAME \
        --default-action-on-vm-failure=do_nothing
    

    Berikan nilai berikut:

  3. Di MIG, buat permintaan ubah ukuran. Tentukan jumlah instance VM GPU yang Anda inginkan, dan durasi untuk menjalankan instance VM tersebut.

    gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
        --resize-request=RESIZE_REQUEST_NAME \
        --resize-by=COUNT \
        --zone=ZONE_NAME
    

    Berikan nilai berikut:

    • INSTANCE_GROUP_NAME: Nama MIG.

    • INSTANCE_TEMPLATE_NAME: Nama template instance untuk instance VM GPU.

    • ZONE_NAME: Salah satu zona yang mendukung Confidential Computing NVIDIA.

    • RESIZE_REQUEST_NAME: Nama permintaan pengubahan ukuran.

    • COUNT: Jumlah instance VM yang akan ditambahkan sekaligus dalam grup.

    Permintaan pengubahan ukuran yang Anda buat tetap dalam status ACCEPTED hingga MIG membuat semua instance VM GPU yang diminta. Setelah semua instance VM GPU dibuat dalam grup, status permintaan akan berubah menjadi SUCCEEDED.

  4. Jika resource yang tersedia cukup untuk permintaan ubah ukuran, instance VM akan ditambahkan ke MIG dan diluncurkan untuk menjalankan workload Anda. Untuk menampilkan daftar instance yang ada di MIG, jalankan perintah berikut:

    gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \
        --zone=ZONE_NAME \
        --project=PROJECT_ID
    

    Berikan nilai berikut:

    • INSTANCE_GROUP_NAME: Nama MIG.

    • ZONE_NAME: Zona yang didukung untuk mendapatkan daftar instance VM.

    • PROJECT_ID: Opsional. ID project untuk mendapatkan daftar instance VM.

Akun layanan terlampir

Akun layanan harus dilampirkan ke Confidential VM workload untuk menjalankan workload. Akun layanan harus disiapkan dengan cara berikut:

  • Dengan peran berikut:

  • Dengan akses baca ke tempat kolaborator data menyimpan data rahasia mereka, misalnya, bucket Cloud Storage atau tabel BigQuery.

  • Dengan akses tulis ke tempat workload menghasilkan data, misalnya, bucket Cloud Storage. Kolaborator data harus memiliki akses baca ke lokasi ini.

Selain itu, kolaborator data dan operator workload perlu menyiapkan hal-hal berikut:

  • Jika kolaborator data menggunakan peniruan akun layanan, bukan akses resource langsung, mereka harus menambahkan akun layanan ke penyedia workload identity pool sebagai kondisi atribut:

    'WORKLOAD_SERVICE_ACCOUNT_NAME@DATA_COLLABORATOR_PROJECT_ID.iam.gserviceaccount.com' in assertion.google_service_accounts
    
  • Operator workload memerlukan peran roles/iam.serviceAccountUser untuk meniru identitas akun layanan. Dengan begitu, mereka dapat memasangnya ke instance VM workload sehingga dapat menjalankan workload.

Variabel metadata

Anda dapat mengubah perilaku VM workload Confidential Space dengan meneruskan variabel ke opsi --metadata saat membuat VM.

Untuk meneruskan beberapa variabel, tetapkan pemisah terlebih dahulu dengan mengawali nilai --metadata dengan ^~^. Tindakan ini akan menetapkan pembatas ke ~, karena , digunakan dalam nilai variabel.

Contoh:

metadata="^~^tee-restart-policy=Always~tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest"

Tabel berikut menjelaskan variabel metadata yang dapat Anda tetapkan untuk VM workload.

Kunci metadata Jenis Deskripsi dan nilai

tee-image-reference

Berinteraksi dengan:

String

Wajib. Ini mengarah ke lokasi container workload.

Contoh
tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest

ita-api-key

String

Hanya diperlukan jika Anda menggunakan Intel Trust Authority sebagai layanan pengesahan. Tetapkan nilai ke kunci API Intel Trust Authority Anda.

Lihat dokumentasi Intel untuk mengetahui cara membuat kunci API Intel Trust Authority.

Intel Trust Authority mendukung instance VM Intel TDX yang secara opsional memiliki GPU NVIDIA H100. Jika GPU ada, buktinya juga akan diverifikasi.

Contoh
ita-api-key=API_KEY

ita-region

String

Hanya diperlukan jika Anda menggunakan Intel Trust Authority sebagai layanan pengesahan. Tetapkan nilai ke region tempat Anda ingin Intel Trust Authority dijalankan. Region yang valid adalah:

  • AS: https://api.trustauthority.intel.com
  • Eropa: https://api.eu.trustauthority.intel.com

Intel Trust Authority mendukung instance VM Intel TDX yang secara opsional memiliki GPU NVIDIA H100. Jika GPU ada, buktinya juga diverifikasi.

Contoh
ita-region=REGION_NAME

tee-added-capabilities

Berinteraksi dengan:

Array string JSON

Menambahkan kemampuan Linux tambahan ke container workload.

Contoh
tee-added-capabilities="[\"CAP_SYS_ADMIN\", \"CAP_SYS_CHROOT\"]"

tee-cgroup-ns

Berinteraksi dengan:

Boolean

Nilai defaultnya adalah false. Jika ditetapkan ke true, memungkinkan pemasangan cgroup dengan namespace di /sys/fs/cgroup.

Contoh
tee-cgroup-ns=true

tee-cmd

Berinteraksi dengan:

Array string JSON

Mengganti petunjuk CMD yang ditentukan dalam Dockerfile container workload.

Contoh
tee-cmd="[\"params1\", \"params2\"]"

tee-container-log-redirect

Berinteraksi dengan:

Enumerasi

Menghasilkan STDOUT dan STDERR dari container workload ke Cloud Logging atau serial console, menggunakan kolom confidential-space-launcher.

Nilai yang valid adalah:

  • false: (default) tidak ada logging yang terjadi.
  • true: output ke konsol serial dan Cloud Logging.
  • cloud_logging: output hanya ke Cloud Logging.
  • serial: output hanya ke konsol serial.

Volume log yang tinggi di konsol serial dapat memengaruhi performa workload.

Contoh
tee-container-log-redirect=true

tee-dev-shm-size-kb

Bilangan bulat

Menetapkan ukuran dalam kB dari pemasangan memori bersama /dev/shm.

Contoh
tee-dev-shm-size-kb=65536

tee-env-ENVIRONMENT_VARIABLE_NAME

Berinteraksi dengan:

String

Menetapkan variabel lingkungan dalam container workload. Pembuat workload juga harus menambahkan nama variabel lingkungan ke kebijakan peluncuran allow_env_override, atau variabel tersebut tidak akan ditetapkan.

Contoh
tee-env-example-env-1='value-1'~tee-env-example-env-2='value-2'

tee-impersonate-service-accounts

Berinteraksi dengan:

String

Daftar akun layanan yang dapat ditiru oleh operator workload. Operator workload harus diizinkan untuk meniru akun layanan.

Beberapa akun layanan dapat dicantumkan, dipisahkan dengan koma.

Contoh
tee-impersonate-service-accounts=SERVICE_ACCOUNT_NAME_1@WORKLOAD_OPERATOR_PROJECT_ID.iam.gserviceaccount.com,SERVICE_ACCOUNT_NAME_2@WORKLOAD_OPERATOR_PROJECT_ID.iam.gserviceaccount.com

tee-install-gpu-driver

Berinteraksi dengan:

Boolean

Apakah akan menginstal driver GPU Confidential Computing NVIDIA. Memerlukan jenis mesin yang mendukung NVIDIA Confidential Computing.

Contoh
tee-install-gpu-driver=true

tee-monitoring-memory-enable

Berinteraksi dengan:

Boolean

Nilai defaultnya adalah false. Jika ditetapkan ke true, akan mengaktifkan pemantauan penggunaan memori. Metrik yang dikumpulkan oleh Confidential VM berjenis guest/memory/bytes_used, dan dapat dilihat di Cloud Logging atau Metrics Explorer.

Contoh
tee-monitoring-memory-enable=true

tee-mount

Berinteraksi dengan:

String

Daftar definisi pemasangan yang dipisahkan titik koma. Definisi pemasangan terdiri dari daftar key-value pair yang dipisahkan koma, yang memerlukan type, source, dan destination. destination harus berupa jalur absolut dan type/source harus berupa tmpfs.

Contoh
type=tmpfs,source=tmpfs,destination=/tmp/tmpfs,size=12345;type=tmpfs,source=tmpfs,destination=/run/workload

tee-restart-policy

Berinteraksi dengan:

Enumerasi

Kebijakan mulai ulang peluncur container saat workload berhenti.

Nilai yang valid adalah:

  • Never (default)
  • Always
  • OnFailure

Variabel ini hanya didukung oleh image Confidential Space produksi.

Contoh
tee-restart-policy=OnFailure

tee-signed-image-repos

Berinteraksi dengan:

String

Daftar repositori container yang dipisahkan koma yang menyimpan tanda tangan yang dihasilkan oleh Sigstore Cosign.

Contoh
tee-signed-image-repos=us-docker.pkg.dev/projectA/repo/example,us-docker.pkg.dev/projectB/repo/example,us-docker.pkg.dev/projectC/repo/example

Penskalaan

Untuk penskalaan dan ketersediaan tinggi workload Confidential Space produksi, lihat Grup Instance Terkelola.