全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan mode penjadwalan GPU default

更新时间:Jun 26, 2025

Container Service for Kubernetes (ACK) memungkinkan Anda menjadwalkan dan mengelola sumber daya GPU menggunakan penjadwalan GPU. Mode penjadwalan GPU default sama dengan yang digunakan di Kubernetes open source. Dalam topik ini, pekerjaan TensorFlow yang dipercepat GPU digunakan sebagai contoh untuk menjelaskan cara cepat menerapkan aplikasi berat GPU.

Catatan penggunaan

Disarankan untuk meminta sumber daya GPU pada node yang dikelola oleh ACK dengan cara serupa seperti meminta sumber daya ekstensi Kubernetes. Perhatikan hal-hal berikut ketika meminta sumber daya GPU untuk aplikasi dan menggunakan sumber daya tersebut.

  • Jangan jalankan aplikasi berat GPU langsung pada node.

  • Hindari penggunaan alat baris perintah seperti docker, podman, atau nerdctl untuk membuat kontainer atau meminta sumber daya GPU untuk kontainer. Sebagai contoh, jangan jalankan perintah docker run --gpus all atau docker run -e NVIDIA_VISIBLE_DEVICES=all untuk menjalankan aplikasi berat GPU.

  • Jangan tambahkan variabel lingkungan NVIDIA_VISIBLE_DEVICES=all atau NVIDIA_VISIBLE_DEVICES=<GPU ID> ke bagian env dalam file YAML pod. Hindari penggunaan variabel lingkungan NVIDIA_VISIBLE_DEVICES untuk meminta sumber daya GPU untuk pod dan menjalankan aplikasi berat GPU.

  • Jangan atur NVIDIA_VISIBLE_DEVICES=all dan jalankan aplikasi berat GPU saat membuat gambar kontainer jika variabel lingkungan NVIDIA_VISIBLE_DEVICES tidak ditentukan dalam file YAML pod.

  • Jangan tambahkan privileged: true ke bagian securityContext dalam file YAML pod dan jalankan aplikasi berat GPU.

Penggunaan metode-metode di atas untuk meminta sumber daya GPU dapat menimbulkan risiko keamanan berikut.

  • Jika salah satu metode di atas digunakan untuk meminta sumber daya GPU pada node tanpa menentukan detail dalam buku besar sumber daya perangkat penjadwal, informasi alokasi sumber daya GPU aktual mungkin berbeda dari yang tercatat dalam buku besar. Akibatnya, beberapa pod yang meminta sumber daya GPU tetap dapat dijadwalkan ke node tersebut. Hal ini dapat menyebabkan kompetisi antara aplikasi untuk mendapatkan sumber daya dari GPU yang sama, sehingga beberapa aplikasi mungkin gagal dimulai karena sumber daya GPU yang tidak mencukupi.

  • Metode-metode tersebut juga dapat menyebabkan masalah lain yang tidak diketahui, seperti masalah yang dilaporkan oleh komunitas NVIDIA.

Prosedur

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

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel kiri, pilih Workloads > Deployments.

  3. Di halaman Deployments, klik Create from YAML. Tempel blok kode berikut ke editor Template dan klik Create.

    apiVersion: v1
    kind: Pod
    metadata:
      name: tensorflow-mnist
      namespace: default
    spec:
      containers:
      - image: registry.cn-beijing.aliyuncs.com/acs/tensorflow-mnist-sample:v1.5
        name: tensorflow-mnist
        command:
        - python
        - tensorflow-sample-code/tfjob/docker/mnist/main.py
        - --max_steps=100000
        - --data_dir=tensorflow-sample-code/data
        resources:
          limits:
            nvidia.com/gpu: 1  # Meminta satu GPU untuk pod.
        workingDir: /root
      restartPolicy: Always
  4. Di panel navigasi kiri halaman manajemen kluster, pilih Workloads > Pods, temukan pod yang Anda buat, lalu klik nama pod untuk melihat informasi pod.

    Klik tab Logs dan lihat log pekerjaan TensorFlow. Output berikut menunjukkan bahwa pekerjaan tersebut menggunakan GPU.

    image.png