全部产品
Search
文档中心

Container Service for Kubernetes:Konfigurasikan kebijakan pemilihan GPU untuk node dengan fitur berbagi GPU diaktifkan

更新时间:Jul 06, 2025

Secara default, penjadwal mengalokasikan semua sumber daya dari satu GPU pada node ke pod sebelum beralih ke GPU lain. Hal ini membantu mencegah fragmentasi GPU. Dalam beberapa skenario, Anda mungkin ingin menyebarkan pod ke GPU yang berbeda pada node jika terjadi gangguan bisnis ketika sebuah GPU mengalami kerusakan. Topik ini menjelaskan cara mengonfigurasi kebijakan pemilihan GPU untuk node dengan fitur berbagi GPU diaktifkan.

Prasyarat

Deskripsi Kebijakan

Jika sebuah node dengan fitur berbagi GPU diaktifkan memiliki beberapa GPU, Anda dapat memilih salah satu dari kebijakan pemilihan GPU berikut:

  • Binpack: Secara default, kebijakan binpack digunakan. Penjadwal mengalokasikan semua sumber daya dari satu GPU ke pod sebelum beralih ke GPU lain. Ini membantu mencegah fragmentasi GPU.

  • Spread: Penjadwal mencoba menyebarkan pod ke GPU yang berbeda pada node jika terjadi gangguan bisnis ketika sebuah GPU mengalami kerusakan.

Dalam contoh ini, sebuah node memiliki dua GPU. Setiap GPU menyediakan 15 GiB memori. Pod1 meminta 2 GiB memori dan Pod2 meminta 3 GiB memori.

Prosedur

Secara default, kebijakan binpack digunakan untuk memilih GPU. Untuk mengaktifkan kebijakan spread dalam berbagi GPU, ikuti langkah-langkah berikut:

Langkah 1: Buat kumpulan node

  1. Masuk ke Konsol ACK. Di panel navigasi di sebelah kiri, klik Clusters.

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik nama kluster untuk masuk ke halaman detail kluster. Di panel navigasi di sebelah kiri, pilih Nodes > Node Pools.

  1. Di pojok kanan atas halaman Kumpulan Node, klik Buat Kumpulan Node.

  2. Di kotak dialog Buat Kumpulan Node, konfigurasikan parameter untuk kumpulan node dan klik Confirm Order. Tabel berikut menjelaskan parameter utama. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Buat dan Kelola Kumpulan Node.

    Parameter

    Deskripsi

    Tipe Instans

    Atur Architecture ke GPU-accelerated dan pilih beberapa tipe instans yang dipercepat oleh GPU.

    Kebijakan spread hanya berlaku jika node memiliki lebih dari satu GPU. Oleh karena itu, pilih tipe instans yang memiliki beberapa GPU.

    Node yang Diharapkan

    Tentukan jumlah awal node dalam kumpulan node. Jika Anda tidak ingin membuat node dalam kumpulan node, atur parameter ini ke 0.

    Label Node

    Klik ikon 1.jpg untuk menambahkan dua entri:

    • Tambahkan label dengan key adalah ack.node.gpu.schedule dan value adalah cgpu. Label ini mengaktifkan fitur berbagi GPU dan isolasi memori GPU.

    • Tambahkan label dengan key adalah ack.node.gpu.placement dan value adalah spread. Label ini mengaktifkan kebijakan spread.

Langkah 2: Kirim pekerjaan

  1. Masuk ke Konsol ACK. Di panel navigasi di sebelah kiri, klik Clusters.

  2. Di halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel sebelah kiri, pilih Workloads > Jobs.

  3. Klik Create from YAML di bagian kanan atas halaman, salin kode berikut ke editor Template, dan kemudian modifikasi parameter berdasarkan komentar berikut. Setelah Anda menyelesaikan konfigurasi, klik Create.

    Klik untuk melihat konten YAML

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: tensorflow-mnist-spread
    spec:
      parallelism: 3
      template:
        metadata:
          labels:
            app: tensorflow-mnist-spread
        spec:
          nodeSelector:
             kubernetes.io/hostname: <NODE_NAME> # Ganti <NODE_NAME> dengan nama node yang dipercepat GPU di kluster, seperti cn-shanghai.192.0.2.109.
          containers:
          - name: tensorflow-mnist-spread
            image: registry.cn-beijing.aliyuncs.com/ai-samples/gpushare-sample:tensorflow-1.5
            command:
            - python
            - tensorflow-sample-code/tfjob/docker/mnist/main.py
            - --max_steps=100000
            - --data_dir=tensorflow-sample-code/data
            resources:
              limits:
                aliyun.com/gpu-mem: 4 # Meminta 4 GiB memori.
            workingDir: /root
          restartPolicy: Never

    Deskripsi template YAML:

    • Template YAML ini mendefinisikan pekerjaan TensorFlow MNIST. Pekerjaan ini membuat 3 pod dan setiap pod meminta 4 GiB memori.

    • Batas sumber daya pod aliyun.com/gpu-mem: 4 digunakan untuk meminta memori untuk pod.

    • Untuk membuat kebijakan pemilihan GPU berlaku pada node, tambahkan NodeSelector kubernetes.io/hostname: <NODE_NAME> ke template YAML untuk menjadwalkan pod ke node yang ditentukan.

Langkah 3: Verifikasi apakah kebijakan spread digunakan

Gunakan alat inspeksi GPU untuk menanyakan informasi alokasi GPU dari node.

kubectl inspect cgpu

NAME                   IPADDRESS      GPU0(Allocated/Total)  GPU1(Allocated/Total)  GPU2(Allocated/Total)  GPU3(Allocated/Total)  GPU Memory(GiB)
cn-shanghai.192.0.2.109  192.0.2.109  4/15                   4/15                   0/15                   4/15                   12/60
--------------------------------------------------------------------------------------
Allocated/Total GPU Memory In Cluster:
12/60 (20%)

Hasil menunjukkan bahwa pod tersebar ke GPU yang berbeda. Kebijakan spread sedang berlaku.