Men-deploy workload


Operator workload dapat meneruskan opsi ke instance VM workload Confidential Space untuk menentukan perilakunya sebelum dijalankan. Meskipun beberapa tanda 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 (Pratinjau) untuk membantu menjaga privasi data workload Anda.

  • Variabel metadata VM apa yang perlu diteruskan, yang mencakup detail seperti image container workload mana yang akan dijalankan, apakah akan mencatat ke Cloud Logging, dan variabel lingkungan apa yang akan disetel.

  • Akun layanan mana yang akan dilampirkan ke VM untuk menjalankan beban kerja, dan izin apa yang diperlukan untuk mengakses data rahasia di project lain dan menulis hasilnya di suatu tempat.

  • Zona tempat instance VM harus berjalan.

Berikut adalah contoh yang membuat Confidential VM, dan menjalankan container Docker yang disebut 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, CPU, dan zona.

  • 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 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 beban kerja debug

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

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

  • WORKLOAD_CONTAINER_NAME: Nama container beban kerja.

  • 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. Ruang Rahasia memerlukan layanan berikut, yang tersedia di lokasi tertentu:

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

Workload berbasis GPU

Sebelum memulai

  • Confidential Space hanya mendukung NVIDIA Confidential Computing (Pratinjau) pada 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 GPU yang dapat dihentikan 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 GPU dari semua jenis di semua region.

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

  • Baca batasan untuk membuat permintaan perubahan ukuran di MIG.

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

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

Men-deploy workload berbasis GPU

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

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-preview-cgpu untuk workload produksi

    • confidential-space-debug-preview-cgpu untuk beban kerja debug

  • WORKLOAD_AUTHOR_PROJECT: Project ID tempat beban kerja dijalankan.

  • REPOSITORY_NAME: Nama repositori Artifact Registry.

  • WORKLOAD_CONTAINER_NAME: Nama container beban kerja.

  • 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 NVIDIA Confidential Computing (Pratinjau).

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

Flex-start

Untuk menggunakan model penyediaan mulai fleksibel (Pratinjau), buat template instance, lalu 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 \
        --reservation-affinity=none \
        --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-preview-cgpu untuk workload produksi

      • confidential-space-debug-preview-cgpu untuk beban kerja 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 untuk 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 pengubahan 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 NVIDIA Confidential Computing (Pratinjau).

    • 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 cukup tersedia untuk permintaan pengubahan ukuran, instance VM akan ditambahkan ke MIG dan diluncurkan untuk menjalankan workload Anda. Untuk mencantumkan 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 beban kerja untuk menjalankan beban kerja. 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 harus mengeluarkan data, misalnya, bucket Cloud Storage. Kolaborator data harus memiliki akses baca ke lokasi ini.

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

  • Jika kolaborator data menggunakan peniruan identitas akun layanan, bukan akses resource langsung, mereka harus menambahkan akun layanan ke penyedia kumpulan identitas beban kerja mereka 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 menyamar sebagai akun layanan. Hal ini memungkinkan mereka melampirkannya 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 Anda membuat VM.

Untuk meneruskan beberapa variabel, tetapkan terlebih dahulu pembatas dengan menambahkan awalan nilai --metadata dengan ^~^. Tindakan ini 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 beban kerja.

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

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, mengaktifkan pemasangan cgroup namespace di /sys/fs/cgroup.

Contoh
tee-cgroup-ns=true

tee-cmd

Berinteraksi dengan:

Array string JSON

Menggantikan petunjuk CMD yang ditentukan dalam Dockerfile container workload.

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

tee-container-log-redirect

Berinteraksi dengan:

String yang ditentukan

Menampilkan STDOUT dan STDERR dari container workload ke Cloud Logging atau konsol serial, di kolom confidential-space-launcher.

Nilai yang valid adalah:

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

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 beban kerja. Penulis beban kerja 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 identitasnya oleh operator workload. Operator workload harus diizinkan untuk meniru identitas akun layanan.

Beberapa akun layanan dapat dicantumkan, yang 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 (Pratinjau).

Contoh
tee-install-gpu-driver=true

tee-monitoring-memory-enable

Berinteraksi dengan:

Boolean

Nilai defaultnya adalah false. Jika disetel ke true, 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 dengan titik koma. Definisi pemasangan terdiri dari daftar pasangan nilai kunci 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:

String yang ditentukan

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 penampung 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 Ruang Rahasia produksi, lihat Managed Instance Groups.