Mengenkripsi data workload GPU yang sedang digunakan dengan Confidential GKE Node

Anda dapat mengenkripsi data workload GPU yang sedang digunakan dengan menjalankan workload di Confidential Google Kubernetes Engine Nodes yang dienkripsi. Halaman ini menunjukkan kepada Engineer Keamanan dan Operator cara meningkatkan keamanan data dalam workload yang dipercepat, seperti tugas AI/ML. Anda harus memahami konsep berikut:

Tentang menjalankan workload GPU di Confidential GKE Node

Anda dapat meminta Confidential GKE Node untuk workload GPU menggunakan salah satu metode berikut:

Batasan

Mode Autopilot hanya mendukung GPU NVIDIA H100 (80 GB) dengan Confidential GKE Node.

Sebelum memulai

Sebelum memulai, pastikan Anda telah melakukan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Jika ingin menggunakan Google Cloud CLI untuk tugas ini, instal lalu lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan perintah gcloud components update. Versi gcloud CLI yang lebih lama mungkin tidak mendukung menjalankan perintah dalam dokumen ini.

Persyaratan

Terlepas dari metode konfigurasi Confidential GKE Node yang Anda pilih, Anda harus memenuhi semua persyaratan berikut:

  • Node harus berada di zona yang mendukung NVIDIA Confidential Computing. Untuk mengetahui informasi selengkapnya, lihat Melihat zona yang didukung.
  • Node harus menggunakan jenis mesin, teknologi Confidential Computing, dan GPU yang didukung. Untuk mengetahui informasi selengkapnya, lihat Konfigurasi yang didukung.
  • Anda harus memiliki kuota preemptible untuk GPU yang ingin Anda gunakan di lokasi node. Misalnya, jika Anda menggunakan GPU NVIDIA H100 (80 GB), Anda harus memiliki kuota untuk compute.googleapis.com/preemptible_nvidia_h100_gpus. Untuk mengetahui informasi selengkapnya tentang cara mengelola kuota, lihat Melihat dan mengelola kuota.

Selain persyaratan ini, Anda harus memenuhi kondisi tertentu bergantung pada metode konfigurasi Confidential GKE Node yang Anda pilih, seperti yang dijelaskan dalam tabel berikut:

Metode konfigurasi Persyaratan Batasan
ComputeClasses
  • Gunakan Spot VM atau flex-start (Pratinjau).
  • Gunakan GKE versi 1.33.3-gke.1392000 atau yang lebih baru.
  • Anda tidak dapat menggunakan flex-start dengan penyediaan dalam antrean dengan ComputeClasses.
  • Anda tidak dapat menggunakan fitur berbagi GPU seperti berbagi waktu atau GPU multi-instance.
Konfigurasi manual dalam mode Standard
  • Gunakan Spot VM, preemptible VM, flex-start (Pratinjau), atau flex-start dengan penyediaan dalam antrean.
  • Gunakan salah satu versi GKE berikut:
    • Penginstalan driver GPU manual: 1.32.2-gke.1297000 atau yang lebih baru.
    • Penginstalan driver GPU otomatis: 1.33.3-gke.1392000 atau yang lebih baru.
    • Flex-start dengan penyediaan dalam antrean: 1.32.2-gke.1652000 atau yang lebih baru.
  • Anda tidak dapat menggunakan flex-start (Pratinjau) jika mengaktifkan Confidential GKE Node untuk seluruh cluster.
  • Anda tidak dapat menggunakan fitur berbagi GPU seperti berbagi waktu atau GPU multi-instance.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk membuat Confidential GKE Node, minta administrator untuk memberi Anda peran IAM berikut di project: Google Cloud

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Menggunakan ComputeClasses untuk menjalankan workload GPU rahasia

Anda dapat menentukan konfigurasi Confidential GKE Node di a ComputeClass. ComputeClasses adalah resource kustom Kubernetes yang memungkinkan Anda menetapkan konfigurasi node secara deklaratif untuk penskalaan otomatis dan penjadwalan GKE. Anda dapat mengikuti langkah-langkah di bagian ini di cluster Autopilot atau Standard yang menjalankan GKE versi 1.33.3-gke.1392000 atau yang lebih baru.

Untuk menggunakan ComputeClass guna menjalankan workload GPU di Confidential GKE Node, ikuti langkah-langkah berikut:

  1. Simpan manifes ComputeClass berikut sebagai file YAML:

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: COMPUTECLASS_NAME
    spec:
      nodePoolConfig:
        confidentialNodeType: CONFIDENTIAL_COMPUTE_TECHNOLOGY
      priorityDefaults:
        location:
          zones: ['ZONE1','ZONE2']
      priorities:
      - gpu:
          type: GPU_TYPE
          count: GPU_COUNT
          driverVersion: default
        spot: true
      activeMigration:
        optimizeRulePriority: true
      nodePoolAutoCreation:
        enabled: true
      whenUnsatisfiable: DoNotScaleUp
    

    Ganti kode berikut:

    • COMPUTECLASS_NAME: nama untuk ComputeClass.
    • CONFIDENTIAL_COMPUTE_TECHNOLOGY: teknologi Confidential Computing yang akan digunakan, seperti TDX. Pilih teknologi yang didukung oleh GPU yang ingin Anda gunakan.

    • ZONE1,ZONE2: daftar zona yang dipisahkan koma untuk membuat node, seperti ['us-central1-a','us-central1-b']. Tentukan zona yang mendukung teknologi Confidential Computing dan jenis mesin yang ingin Anda gunakan. Untuk mengetahui informasi selengkapnya, lihat Melihat zona yang didukung.

    • GPU_TYPE: jenis GPU yang akan digunakan, seperti nvidia-h100-80gb.

    • GPU_COUNT: jumlah GPU yang akan dipasang ke setiap node. Tentukan nilai yang didukung oleh Confidential VM untuk jenis GPU. Misalnya, jika Anda memilih jenis GPU nvidia-h100-80gb, maka Anda harus menentukan nilai 1 di kolom ini.

  2. Buat ComputeClass:

    kubectl apply -f PATH_TO_MANIFEST
    

    Ganti PATH_TO_MANIFEST dengan jalur ke file manifes ComputeClass.

  3. Untuk menjalankan workload GPU di Confidential GKE Node, pilih ComputeClass dalam manifes workload. Misalnya, simpan manifes Deployment berikut, yang memilih ComputeClass dan GPU, sebagai file YAML:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: confidential-gpu-deployment
      labels:
        app: conf-gpu
    spec:
      selector:
        matchLabels:
          app: conf-gpu
      replicas: 1
      template:
        metadata:
          labels:
            app: conf-gpu
        spec:
          nodeSelector:
            cloud.google.com/compute-class: COMPUTECLASS_NAME
          containers:
          - name: example-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            resources:
              limits:
                cpu: "4"
                memory: "16Gi"
                nvidia.com/gpu: GPU_REQUEST
              requests:
                cpu: "4"
                memory: "16Gi"
    

    Ganti kode berikut:

    • COMPUTECLASS_NAME: nama ComputeClass yang Anda buat.
    • GPU_REQUEST: jumlah GPU yang akan digunakan dalam container. Tentukan nilai yang kurang dari atau sama dengan nilai yang Anda tentukan di kolom gpu.count ComputeClass.
  4. Buat Deployment:

    kubectl apply -f PATH_TO_DEPLOYMENT_MANIFEST
    

    Ganti PATH_TO_DEPLOYMENT_MANIFEST dengan jalur ke manifes Deployment.

Saat Anda membuat workload GPU, GKE menggunakan konfigurasi di ComputeClass untuk membuat Confidential GKE Node dengan GPU terpasang.

Mengonfigurasi Confidential GKE Node secara manual di GKE Standard

Anda dapat menjalankan workload GPU di Confidential GKE Node dalam cluster atau node pool mode Standard.

Mengaktifkan Confidential GKE Node di cluster Standard baru

Anda dapat mengaktifkan Confidential GKE Node untuk seluruh cluster Standard, sehingga setiap node pool GPU yang Anda buat menggunakan teknologi Confidential Computing yang sama. Saat Anda membuat cluster mode Standard baru yang menggunakan Confidential GKE Node untuk workload GPU, pastikan Anda menentukan setelan cluster berikut:

  • Lokasi: region atau zona yang mendukung NVIDIA Confidential Computing. Untuk mengetahui informasi selengkapnya, lihat Melihat zona yang didukung.
  • Jenis Confidential Computing: teknologi Confidential Computing yang mendukung GPU. Untuk mengetahui informasi selengkapnya, lihat Konfigurasi yang didukung.
  • Versi cluster: salah satu versi berikut, bergantung pada cara Anda ingin menginstal driver GPU:

    • Penginstalan driver GPU manual: 1.32.2-gke.1297000 atau yang lebih baru.
    • Penginstalan driver GPU otomatis: 1.33.3-gke.1392000 atau yang lebih baru.

Anda dapat mengonfigurasi GPU secara opsional untuk node pool default yang dibuat GKE di cluster Anda. Namun, sebaiknya gunakan node pool terpisah untuk GPU Anda, sehingga setidaknya satu node pool di cluster dapat menjalankan workload apa pun.

Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan Confidential GKE Node di cluster Standard.

Menggunakan Confidential GKE Node dengan GPU di node pool Standard

Jika cluster Anda tidak mengaktifkan Confidential GKE Node, Anda dapat mengaktifkan Confidential GKE Node di node pool GPU baru atau yang sudah ada. Bidang kontrol dan node pool harus memenuhi persyaratan di bagian Ketersediaan. Saat mengonfigurasi node pool, Anda dapat memilih untuk menginstal driver GPU secara otomatis atau manual.

  • Untuk membuat node pool GPU baru yang menggunakan Confidential GKE Node, pilih salah satu opsi berikut:

    Konsol

    1. Di Google Cloud konsol, buka halaman Kubernetes clusters:

      Buka cluster Kubernetes

    2. Klik nama cluster mode Standard yang akan diubah.

    3. Klik tab Nodes.

    4. Klik Create user-managed node pool. Halaman Add a node pool akan terbuka.

    5. Di panel Node pool details, lakukan hal berikut:

      1. Pilih Specify node locations.
      2. Pilih hanya zona yang didukung yang tercantum di bagian Ketersediaan.
      3. Pastikan versi bidang kontrol adalah salah satu versi yang tercantum di bagian Ketersediaan.
    6. Di menu navigasi, klik Nodes.

    7. Di panel Configure node settings, lakukan hal berikut:

      1. Di bagian Machine configuration, klik GPUs.
      2. Di menu GPU type, pilih jenis GPU yang didukung oleh Confidential Computing.
      3. Di menu Number of GPUs, pilih jumlah GPU yang akan dipasang ke setiap node. Pilih nilai yang didukung oleh jenis GPU yang Anda pilih. Misalnya, jika Anda memilih GPU NVIDIA H100 (80 GB), pilih 1.
      4. Pastikan Enable GPU sharing tidak dipilih.
      5. Di bagian GPU Driver installation, pilih salah satu opsi berikut:

        • Google-managed: GKE otomatis menginstal driver. Jika Anda memilih opsi ini, di daftar drop-down Version, pilih salah satu versi driver berikut:

          • Default: menginstal versi driver default untuk versi GKE node. Memerlukan GKE versi 1.33.3-gke.1392000 atau yang lebih baru.
          • Terbaru: menginstal versi driver terbaru untuk versi GKE node. Memerlukan GKE versi 1.33.3-gke.1392000 atau yang lebih baru.
        • User-managed: melewati penginstalan driver otomatis. Jika Anda memilih opsi ini, Anda harus menginstal driver GPU yang kompatibel secara manual. Memerlukan 1.32.2-gke.1297000 atau yang lebih baru.

      6. Di bagian Machine type, pastikan jenis mesin adalah jenis mesin GPU yang didukung oleh Confidential VM untuk jenis GPU yang Anda pilih.

      7. Pilih Enable nodes on spot VMs atau konfigurasi Flex-start VM dengan penyediaan dalam antrean.

    8. Jika Anda siap membuat node pool, klik Create.

    gcloud

    Anda dapat membuat node pool GPU yang menjalankan Confidential GKE Node di Spot VM atau menggunakan Flex-start VM dengan penyediaan dalam antrean.

    • Buat node pool GPU yang menjalankan Confidential GKE Node di Spot VM:

      gcloud container node-pools create NODE_POOL_NAME \
          --cluster=CLUSTER_NAME \
          --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY \
          --location=LOCATION \
          --node-locations=NODE_LOCATION1,NODE_LOCATION2,... \
          --spot \
          --accelerator=type=GPU_TYPE,count=GPU_COUNT,gpu-driver-version=DRIVER_VERSION \
          --machine-type=MACHINE_TYPE
      

      Ganti kode berikut:

      • NODE_POOL_NAME: nama untuk node pool baru Anda.
      • CLUSTER_NAME: nama cluster yang ada.
      • CONFIDENTIAL_COMPUTE_TECHNOLOGY: teknologi Confidential Computing yang akan digunakan, seperti TDX. Pilih teknologi yang didukung oleh GPU yang ingin Anda gunakan.
      • LOCATION: lokasi untuk node pool baru Anda. Lokasi harus mendukung penggunaan GPU di Confidential GKE Node.
      • NODE_LOCATION1,NODE_LOCATION2,...: daftar zona yang dipisahkan koma untuk menjalankan node. Tentukan zona yang mendukung teknologi Confidential Computing dan jenis mesin yang ingin Anda gunakan. Untuk mengetahui informasi selengkapnya, lihat Melihat zona yang didukung.
      • GPU_TYPE: jenis GPU yang akan digunakan, seperti nvidia-h100-80gb.
      • GPU_COUNT: jumlah GPU yang akan dipasang ke setiap node. Tentukan nilai yang didukung oleh Confidential VM untuk jenis GPU. Misalnya, jika Anda memilih jenis GPU nvidia-h100-80gb, Anda harus menentukan nilai 1 di kolom ini.

      • DRIVER_VERSION: versi driver GPU yang akan diinstal. Tentukan salah satu nilai berikut:

        • default: menginstal versi driver default untuk versi GKE node. Memerlukan GKE versi 1.33.3-gke.1392000 atau yang lebih baru.
        • latest: menginstal versi driver terbaru untuk versi GKE node. Memerlukan GKE versi 1.33.3-gke.1392000 atau yang lebih baru.
        • disabled: melewati penginstalan driver otomatis. Jika Anda menentukan nilai ini, Anda harus menginstal driver GPU yang kompatibel secara manual. Memerlukan 1.32.2-gke.1297000 atau yang lebih baru.
      • MACHINE_TYPE: jenis mesin yang akan digunakan untuk node. Tentukan jenis mesin GPU yang didukung oleh Confidential VM untuk jenis GPU yang Anda pilih.
    • Buat node pool GPU yang menjalankan Confidential GKE Node menggunakan Flex-start VM dengan penyediaan dalam antrean:

      gcloud container node-pools create NODE_POOL_NAME \
          --cluster=CLUSTER_NAME \
          --node-locations=NODE_LOCATION1,NODE_LOCATION2,... \
          --machine-type=MACHINE_TYPE \
          --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY \
          --location=LOCATION \
          --flex-start --enable-queued-provisioning \
          --enable-autoscaling --num-nodes=0 --total-max-nodes=TOTAL_MAX_NODES \
          --location-policy=ANY --reservation-affinity=none --no-enable-autorepair \
          --accelerator=type=GPU_TYPE,count=GPU_COUNT,gpu-driver-version=DRIVER_VERSION
      

      Ganti TOTAL_MAX_NODES dengan jumlah maksimum node yang dapat diskalakan secara otomatis oleh node pool.

      Untuk mengetahui informasi selengkapnya tentang opsi konfigurasi di flex-start dengan penyediaan dalam antrean, lihat Menjalankan workload skala besar dengan flex-start dengan penyediaan dalam antrean.

  • Untuk mengupdate node pool yang ada agar menggunakan Confidential Computing, lihat Mengupdate node pool yang ada.

Menginstal driver GPU secara manual yang mendukung Confidential GKE Node

Jika Anda tidak mengaktifkan penginstalan driver otomatis saat membuat atau mengupdate node pool, Anda harus menginstal driver GPU secara manual yang mendukung Confidential GKE Node.

Perubahan ini memerlukan pembuatan ulang node, yang dapat menyebabkan gangguan pada workload yang sedang berjalan. Untuk mengetahui detail tentang perubahan khusus ini, temukan baris yang sesuai dalam perubahan manual yang membuat ulang node menggunakan tabel strategi upgrade node tanpa memperhatikan kebijakan pemeliharaan . Untuk mempelajari lebih lanjut update node, lihat Merencanakan gangguan update node.

Untuk mengetahui petunjuknya, lihat tab "COS" di Menginstal driver GPU NVIDIA secara manual.

Memecahkan masalah

Untuk mengetahui informasi pemecahan masalah, lihat Memecahkan masalah GPU di GKE.

Langkah berikutnya