Membuat instance Confidential VM dengan GPU

Untuk menggunakan GPU dengan instance Confidential VM, Anda harus membuat instance VM menggunakan jenis mesin dan model penyediaan instance yang didukung. Setelah membuat instance VM, Anda dapat mengaktifkan mode komputasi rahasia pada GPU yang terpasang.

Instance Confidential VM dengan GPU NVIDIA tersedia di jenis mesin berikut:

  • Jenis mesin A3 High: GPU NVIDIA H100 dengan Intel TDX. Mendukung model penyediaan spot dan flex-start.

  • Jenis mesin G4 (Pratinjau): NVIDIA RTX PRO 6000 dengan AMD SEV. Mendukung model penyediaan standar (on-demand), spot, dan flex-start, serta reservasi.

Sebelum membuat instance Confidential VM dengan GPU, pastikan Anda memiliki kuota GPU yang memadai. Untuk mengetahui informasi selengkapnya, lihat Persyaratan kuota GPU.

Membuat instance Confidential VM dengan GPU

Untuk membuat instance VM Rahasia dengan GPU terpasang, gunakan salah satu model penyediaan berikut:

Model standar (on-demand) atau spot

gcloud

Untuk membuat instance VM standar (on-demand) atau Spot yang dioptimalkan akselerator dengan gcloud CLI, gunakan sub-perintah instances create dengan tanda --provisioning-model.

gcloud compute instances create INSTANCE_NAME \
    --provisioning-model=PROVISIONING_MODEL \
    --confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
    --machine-type=MACHINE_TYPE_NAME \
    --maintenance-policy=TERMINATE \
    --zone=ZONE_NAME \
    --image-project=IMAGE_PROJECT \
    --image-family=IMAGE_FAMILY_NAME \
    --boot-disk-size=30G

Untuk mengaktifkan Booting Aman, Anda dapat menggunakan tanda --shielded-secure-boot untuk booting instance VM.

Berikan nilai berikut:

  • INSTANCE_NAME: Nama instance VM baru.

  • PROVISIONING_MODEL: Model penyediaan yang didukung oleh jenis mesin. Pilih salah satu opsi berikut:

    • Jenis mesin A3 High: SPOT untuk instance Spot VM.

    • Jenis mesin G4 (Pratinjau): STANDARD untuk instance VM standar (on-demand) atau SPOT untuk instance VM Spot. Jika tidak ditentukan, nilai ini ditetapkan secara default ke STANDARD.

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

    • Jenis mesin A3 High (a3-highgpu-1g): TDX

    • Jenis mesin G4 (g4-standard-48): SEV

  • MACHINE_TYPE_NAME: Jenis mesin VM. Pilih salah satu opsi berikut:

  • ZONE_NAME: Zona yang didukung untuk membuat VM.

  • IMAGE_PROJECT: Project yang berisi image sistem operasi yang didukung. Pilih salah satu opsi berikut:

    • Jenis mesin A3 High: ubuntu-os-cloud untuk image Ubuntu atau confidential-vm-images untuk image Container-Optimized OS.

    • Jenis mesin G4 (Pratinjau): ubuntu-os-cloud untuk image Ubuntu atau cos-cloud untuk image Container-Optimized OS.

  • IMAGE_FAMILY_NAME: Kelompok untuk image sistem operasi yang didukung Confidential VM. Pilih kelompok image berdasarkan jenis mesin Anda:

    • Jenis mesin A3 High:

      • ubuntu-2204-lts untuk project image Ubuntu.

      • cos-tdx-113-lts untuk project image Container-Optimized OS.

    • Jenis mesin G4 (Pratinjau):

      • ubuntu-2404-lts-amd64 untuk project image Ubuntu.

      • cos-125-lts untuk project image Container-Optimized OS.

REST

Untuk membuat instance VM standar (on-demand) atau Spot VM, kirim permintaan POST berikut dengan konten isi yang sesuai.

Gunakan metode HTTP dan URL berikut:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

Gunakan isi JSON permintaan berikut:

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE_NAME",
  "confidentialInstanceConfig": {
    "confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY"
  },
  "scheduling": {
    "onHostMaintenance": "TERMINATE",
    "automaticRestart": true,
    "provisioningModel": "PROVISIONING_MODEL"
  },
  "disks": [
    {
      "boot": true,
      "autoDelete": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY",
        "diskSizeGb": "30"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ]
}

Berikan nilai berikut:

  • PROJECT_ID: Opsional. ID project tempat VM dibuat.

  • ZONE: Zona yang didukung untuk membuat VM.

  • INSTANCE_NAME: Nama instance VM baru.

  • MACHINE_TYPE_NAME: Jenis mesin VM. Pilih salah satu opsi berikut:

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

    • Jenis mesin A3 High (a3-highgpu-1g): TDX

    • Jenis mesin G4 (g4-standard-48): SEV

  • PROVISIONING_MODEL: Model penyediaan yang didukung oleh seri mesin. Pilih salah satu opsi berikut:

    • Jenis mesin A3 High: SPOT untuk instance Spot VM.

    • Jenis mesin G4 (Pratinjau): STANDARD untuk instance VM standar (on-demand) atau SPOT untuk instance VM Spot. Jika tidak ditentukan, nilai ini secara default adalah STANDARD.

  • IMAGE_PROJECT: Project yang berisi image sistem operasi yang didukung. Pilih salah satu opsi berikut:

    • Jenis mesin A3 High: ubuntu-os-cloud untuk image Ubuntu atau confidential-vm-images untuk image Container-Optimized OS.

    • Jenis mesin G4 (Pratinjau): ubuntu-os-cloud untuk image Ubuntu atau cos-cloud untuk image Container-Optimized OS.

  • IMAGE_FAMILY: Kelompok untuk image sistem operasi yang didukung Confidential VM. Pilih kelompok image berdasarkan jenis mesin Anda:

    • Jenis mesin A3 High:

      • ubuntu-2204-lts untuk project image Ubuntu.

      • cos-tdx-113-lts untuk project image Container-Optimized OS.

    • Jenis mesin G4 (Pratinjau):

      • ubuntu-2404-lts-amd64 untuk project image Ubuntu.

      • cos-125-lts untuk project image Container-Optimized OS.

Model flex-start

Untuk menggunakan model mulai fleksibel, buat template instance terlebih dahulu, lalu gunakan template tersebut untuk membuat grup instance terkelola (MIG). Kemudian, Anda dapat menambahkan instance VM GPU ke MIG menggunakan permintaan pengubahan ukuran.

Menggunakan permintaan pengubahan ukuran MIG dengan model penyediaan flex-start akan meningkatkan ketersediaan instance VM GPU. Untuk mengetahui informasi selengkapnya, lihat Tentang permintaan pengubahan ukuran di MIG.

Sebelum memulai

Membuat MIG dengan instance VM GPU

Untuk membuat template instance, lalu menggunakan template tersebut untuk membuat MIG, selesaikan langkah-langkah berikut.

  1. Membuat template instance.

    gcloud

    gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --provisioning-model=FLEX_START \
        --confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
        --machine-type=MACHINE_TYPE_NAME \
        --maintenance-policy=TERMINATE \
        --image-project=IMAGE_PROJECT \
        --image-family=IMAGE_FAMILY_NAME \
        --reservation-affinity=none \
        --boot-disk-size=30G \
        --instance-termination-action=DELETE \
        --max-run-duration=RUN_DURATION \
        --project=PROJECT_ID
    

    Berikan nilai berikut:

    • INSTANCE_TEMPLATE_NAME: Nama template instance VM baru.

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

      • Jenis mesin A3 High (a3-highgpu-1g): TDX

      • Jenis mesin G4 (g4-standard-48): SEV

    • MACHINE_TYPE_NAME: Jenis mesin VM. Pilih salah satu opsi berikut:

    • IMAGE_PROJECT: Project yang berisi image sistem operasi yang didukung. Pilih salah satu opsi berikut:

      • Jenis mesin A3 High: ubuntu-os-cloud untuk image Ubuntu atau confidential-vm-images untuk image Container-Optimized OS.

      • Jenis mesin G4 (Pratinjau): ubuntu-os-cloud untuk image Ubuntu atau cos-cloud untuk image Container-Optimized OS.

    • IMAGE_FAMILY_NAME: Kelompok untuk image sistem operasi yang didukung Confidential VM yang akan digunakan. Pilih kelompok image berdasarkan jenis mesin Anda:

      • Jenis mesin A3 High:

        • ubuntu-2204-lts untuk project image Ubuntu.

        • cos-tdx-113-lts untuk project image Container-Optimized OS.

      • Jenis mesin G4 (Pratinjau):

        • ubuntu-2404-lts-amd64 untuk project image Ubuntu.

        • cos-125-lts untuk project image Container-Optimized OS.

    • RUN_DURATION: Durasi yang Anda inginkan untuk menjalankan instance VM yang diminta. Anda harus memformat nilai sebagai jumlah hari, jam, menit, atau detik, diikuti dengan d, h, m, dan s. Misalnya: 6d8h44m.

    • PROJECT_ID: ID project tempat VM akan dibuat.

    REST

    Untuk membuat template instance Confidential VM, kirim permintaan POST berikut dengan konten isi yang sesuai.

    Gunakan metode HTTP dan URL berikut:

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplates
    

    Gunakan isi JSON permintaan berikut:

    {
      "name": "INSTANCE_TEMPLATE_NAME",
      "properties": {
        "confidentialInstanceConfig": {
          "confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY"
        },
        "machineType": "MACHINE_TYPE_NAME",
        "scheduling": {
          "instanceTerminationAction": "DELETE",
          "maxRunDuration": {
            "seconds": "RUN_DURATION_IN_SECONDS"
          },
          "automaticRestart": true,
          "onHostMaintenance": "TERMINATE",
          "provisioningModel": "FLEX_START",
          "preemptible": false
        },
        "disks": [
          {
            "autoDelete": true,
            "index": 0,
            "boot": true,
            "kind": "compute#attachedDisk",
            "mode": "READ_WRITE",
            "initializeParams": {
              "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME",
              "diskSizeGb": "30"
            },
            "type": "PERSISTENT"
          }
        ],
        "networkInterfaces": [
          {
            "accessConfigs": [
              {
                "kind": "compute#accessConfig",
                "name": "external-nat",
                "networkTier": "PREMIUM",
                "type": "ONE_TO_ONE_NAT"
              }
            ],
            "kind": "compute#networkInterface",
            "name": "nic0",
            "network": "projects/PROJECT_ID/global/networks/default"
          }
        ],
        "reservationAffinity": {
          "consumeReservationType": "NO_RESERVATION"
        },
        "canIpForward": false
      }
    }
    

    Untuk mengaktifkan Booting Aman, Anda dapat menyertakan objek berikut untuk booting instance VM.

    "shieldedInstanceConfig": {
      "enableIntegrityMonitoring": true,
      "enableSecureBoot": true,
      "enableVtpm": true
    }
    

    Berikan nilai berikut:

    • PROJECT_ID: ID project tempat template akan dibuat.

    • REGION: Region tempat template akan dibuat.

    • INSTANCE_TEMPLATE_NAME: Nama template instance VM baru.

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

      • Jenis mesin A3 High (a3-highgpu-1g): TDX

      • Jenis mesin G4 (g4-standard-48): SEV

    • MACHINE_TYPE_NAME: Jenis mesin VM. Pilih salah satu opsi berikut:

    • RUN_DURATION_IN_SECONDS: Durasi, dalam detik, yang Anda inginkan agar instance VM yang diminta berjalan. Nilai harus antara 600 dan 604800 detik.

    • IMAGE_PROJECT: Project yang berisi image sistem operasi yang didukung. Pilih salah satu opsi berikut:

      • Jenis mesin A3 High: ubuntu-os-cloud untuk image Ubuntu atau confidential-vm-images untuk image Container-Optimized OS.

      • Jenis mesin G4 (Pratinjau): ubuntu-os-cloud untuk image Ubuntu atau cos-cloud untuk image Container-Optimized OS.

    • IMAGE_FAMILY_NAME: Kelompok untuk image sistem operasi yang didukung Confidential VM yang akan digunakan. Pilih kelompok image berdasarkan jenis mesin Anda:

      • Jenis mesin A3 High:

        • ubuntu-2204-lts untuk project image Ubuntu.

        • cos-tdx-113-lts untuk project image Container-Optimized OS.

      • Jenis mesin G4 (Pratinjau):

        • ubuntu-2404-lts-amd64 untuk project image Ubuntu.

        • cos-125-lts untuk project image Container-Optimized OS.

  2. Buat MIG dan permintaan perubahan ukuran untuk menambahkan instance VM GPU sekaligus.

  3. Mencantumkan instance yang ada di MIG.

    gcloud

    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.

    REST

    Untuk mencantumkan semua template, kirim permintaan GET berikut.

    Gunakan metode HTTP dan URL berikut:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
    

    Untuk mempersempit daftar instance ke zona tertentu, kirim permintaan GET berikut.

    Gunakan metode HTTP dan URL berikut:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates
    

    Berikan nilai berikut:

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

    • PROJECT_ID: ID project tempat daftar instance VM diambil.

Menggunakan reservasi dengan instance Confidential VM

Anda dapat menggunakan reservasi untuk memastikan Anda memiliki kapasitas untuk instance Confidential VM hanya dengan jenis mesin G4 (Pratinjau).

Untuk menggunakan reservasi untuk instance Confidential VM Anda:

  1. Buat reservasi standar di zona yang didukung. Anda dapat mengontrol cara instance menggunakan reservasi ini menggunakan flag --require-specific-reservation selama pembuatan reservasi.

  2. Buat instance Confidential VM untuk menggunakan reservasi. Saat membuat instance VM, sertakan flag --confidential-compute-type=SEV untuk menjadikannya instance Confidential VM. Cara instance ini menggunakan reservasi bergantung pada setelan afinitas reservasi.

Contoh berikut menunjukkan cara menggunakan reservasi dengan instance Confidential VM. Metode untuk menggunakan reservasi bergantung pada cara reservasi dibuat:

  • Penggunaan otomatis: Jika reservasi dibuat tanpa tanda --require-specific-reservation, Anda dapat membuat instance VM Rahasia G4 dengan properti yang cocok (seperti jenis mesin atau zona) untuk menggunakan reservasi secara otomatis.

  • Penggunaan spesifik: Jika reservasi dibuat dengan flag --require-specific-reservation, Anda harus menargetkan reservasi menggunakan flag --reservation-affinity=specific dan --reservation=RESERVATION_NAME saat membuat instance:

    gcloud compute instances create INSTANCE_NAME \
        --project=PROJECT_ID \
        --zone=ZONE_NAME \
        --machine-type=g4-standard-48 \
        --confidential-compute-type=SEV \
        --image-project=ubuntu-os-cloud \
        --image-family=ubuntu-2404-lts-amd64 \
        --reservation-affinity=specific \
        --reservation=RESERVATION_NAME
    

    Berikan nilai berikut:

    • INSTANCE_NAME: Nama instance VM baru.

    • PROJECT_ID: Opsional. ID project tempat VM dibuat.

    • ZONE_NAME: Zona yang didukung untuk membuat VM.

    • RESERVATION_NAME: Nama pemesanan.

Untuk mempelajari cara instance VM menggunakan reservasi dan cara kerja afinitas, lihat Menggunakan reservasi.

Mengaktifkan mode confidential computing di GPU

  1. Hubungkan ke instance VM di MIG menggunakan perintah gcloud compute ssh.

    gcloud compute ssh
    
  2. Perbarui daftar paket dan instal alat serta library yang diperlukan.

    sudo apt-get update --yes
    sudo apt-get install linux-headers-$(uname -r)
    sudo apt install -y build-essential libxml2 libncurses5-dev pkg-config libvulkan1 gcc-12
    
  3. Instal driver GPU yang sesuai pada instance VM. Untuk instance VM yang mengaktifkan Booting Aman, lihat Menginstal driver GPU (VM Booting Aman). Sebaiknya gunakan driver modul kernel terbuka NVIDIA versi 580 atau yang lebih baru.

  4. Untuk mengonfigurasi komunikasi yang aman antara GPU dan driver GPU, aktifkan Linux Kernel Crypto API (LKCA).

    echo "install nvidia /sbin/modprobe ecdsa_generic; /sbin/modprobe ecdh; /sbin/modprobe --ignore-install nvidia" | sudo tee /etc/modprobe.d/nvidia-lkca.conf
    sudo update-initramfs -u
    
  5. Aktifkan mode persistensi untuk membuat koneksi Security Protocol and Data Model (SPDM) yang aman antara GPU dan driver GPU.

    sudo test -f /usr/lib/systemd/system/nvidia-persistenced.service && sudo sed -i "s/no-persistence-mode/uvm-persistence-mode/g" /usr/lib/systemd/system/nvidia-persistenced.service
    sudo systemctl daemon-reload
    
  6. Mulai ulang instance VM untuk menerapkan konfigurasi mode persistensi dan LKCA.

    sudo reboot
    
  7. Hubungkan ke instance VM di MIG menggunakan perintah gcloud compute ssh.

    gcloud compute ssh
    
  8. (Opsional) Instal contoh CUDA yang mendukung versi driver yang Anda butuhkan.

    wget -O cuda-samples.tar.gz https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v12.9.tar.gz
    tar xzvf cuda-samples.tar.gz
    

Harga

Selama pratinjau, biaya tambahan untuk instance Confidential VM pada jenis mesin G4 ditawarkan tanpa biaya. Biaya ini mencakup biaya tambahan Confidential Computing dan biaya lisensi NVIDIA. Biaya standar untuk resource Compute Engine yang mendasarinya, seperti jenis mesin G4, GPU, dan penyimpanan, tetap berlaku. Biaya Confidential Computing tambahan ini berlaku setelah periode pratinjau berakhir pada Ketersediaan Umum (GA). Untuk mengetahui detail tentang harga, lihat Harga Confidential VM.

Langkah berikutnya