Instal plugin perangkat Kubernetes untuk GPUs - Amazon EKS

Bantu tingkatkan halaman ini

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Untuk berkontribusi pada panduan pengguna ini, pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Instal plugin perangkat Kubernetes untuk GPUs

Plugin perangkat Kubernetes telah menjadi mekanisme utama untuk mengiklankan infrastruktur khusus seperti, antarmuka jaringan GPUs, dan adaptor jaringan sebagai sumber daya habis pakai untuk beban kerja Kubernetes. Sementara Dynamic Resource Allocation (DRA) diposisikan sebagai masa depan untuk manajemen perangkat di Kubernetes, sebagian besar penyedia infrastruktur khusus pada awal dukungan mereka untuk driver DRA. Plugin perangkat Kubernetes tetap menjadi pendekatan yang tersedia secara luas untuk digunakan GPUs di klaster Kubernetes saat ini.

Pertimbangan-pertimbangan

Instal plugin perangkat NVIDIA Kubernetes

Prosedur berikut menjelaskan cara menginstal plugin perangkat NVIDIA Kubernetes dan menjalankan pengujian sampel pada instance GPU NVIDIA.

Prasyarat

  • Kluster EKS dibuat

  • Node GPU NVIDIA berjalan di cluster menggunakan 023 NVIDIA AMI yang dioptimalkan EKS AL2

  • Helm diinstal di lingkungan baris perintah Anda, lihat instruksi Setup Helm.

Prosedur

  1. Tambahkan repositori bagan nvdp Helm.

    helm repo add nvdp https://nvidia.github.io/k8s-device-plugin
  2. Perbarui repositori Helm lokal Anda untuk memastikan bahwa Anda memiliki grafik terbaru.

    helm repo update
  3. Dapatkan versi terbaru dari plugin perangkat NVIDIA Kubernetes

    helm search repo nvdp --devel
    NAME CHART VERSION APP VERSION DESCRIPTION nvdp/gpu-feature-discovery 0.17.4 0.17.4 ... nvdp/nvidia-device-plugin 0.17.4 0.17.4 ...
  4. Instal plugin perangkat NVIDIA Kubernetes di cluster Anda, ganti 0.17.4 dengan versi terbaru dari perintah di atas.

    helm install nvdp nvdp/nvidia-device-plugin \ --namespace nvidia \ --create-namespace \ --version 0.17.4 \ --set gfd.enabled=true
  5. Verifikasi bahwa plugin perangkat NVIDIA Kubernetes berjalan di cluster Anda. Output di bawah ini menunjukkan output dengan dua node di cluster.

    kubectl get ds -n nvidia nvdp-nvidia-device-plugin
    NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE nvdp-nvidia-device-plugin 2 2 2 2 2 <none> 11m
  6. Verifikasi bahwa node Anda telah dialokasikan GPUs dengan perintah berikut.

    kubectl get nodes "-o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\.com/gpu"
    NAME GPU ip-192-168-11-225.us-west-2.compute.internal 1 ip-192-168-24-96.us-west-2.compute.internal 1
  7. Buat file bernama nvidia-smi.yaml dengan isi berikut ini. Manifes ini meluncurkan gambar kontainer AL2 023 minimal yang berjalan nvidia-smi pada sebuah node.

    apiVersion: v1 kind: Pod metadata: name: nvidia-smi spec: restartPolicy: OnFailure containers: - name: gpu-demo image: public.ecr.aws/amazonlinux/amazonlinux:2023-minimal command: ['/bin/sh', '-c'] args: ['nvidia-smi && tail -f /dev/null'] resources: limits: nvidia.com/gpu: 1 tolerations: - key: 'nvidia.com/gpu' operator: 'Equal' value: 'true' effect: 'NoSchedule'
  8. Terapkan manifes dengan perintah berikut.

    kubectl apply -f nvidia-smi.yaml
  9. Setelah Pod selesai berjalan, lihat lognya dengan perintah berikut.

    kubectl logs nvidia-smi

    Contoh output adalah sebagai berikut.

    +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI XXX.XXX.XX Driver Version: XXX.XXX.XX CUDA Version: XX.X | |-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA L4 On | 00000000:31:00.0 Off | 0 | | N/A 27C P8 11W / 72W | 0MiB / 23034MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | No running processes found | +-----------------------------------------------------------------------------------------+

Instal plugin perangkat Neuron Kubernetes

Prosedur berikut menjelaskan cara menginstal plugin perangkat Neuron Kubernetes dan menjalankan pengujian sampel pada instance Inferentia.

Prasyarat

  • Kluster EKS dibuat

  • Node GPU neuron berjalan di cluster menggunakan AMI Neuron AL2 023 yang dioptimalkan EKS atau AMI Bottlerocket

  • Helm diinstal di lingkungan baris perintah Anda, lihat instruksi Setup Helm.

Prosedur

  1. Instal plugin perangkat Neuron Kubernetes di cluster Anda.

    helm upgrade --install neuron-helm-chart oci://public.ecr.aws/neuron/neuron-helm-chart \ --set "npd.enabled=false"
  2. Verifikasi bahwa plugin perangkat Neuron Kubernetes berjalan di cluster Anda. Output di bawah ini menunjukkan output dengan simpul Neuron tunggal di cluster.

    kubectl get ds -n kube-system neuron-device-plugin
    NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE neuron-device-plugin 1 1 1 1 1 <none> 72s
  3. Verifikasi bahwa node Anda telah dialokasikan NueronCores dengan perintah berikut.

    kubectl get nodes "-o=custom-columns=NAME:.metadata.name,NeuronCore:.status.allocatable.aws\.amazon\.com/neuroncore"
    NAME NeuronCore ip-192-168-47-173.us-west-2.compute.internal 2
  4. Verifikasi bahwa node Anda telah dialokasikan NueronDevices dengan perintah berikut.

    kubectl get nodes "-o=custom-columns=NAME:.metadata.name,NeuronDevice:.status.allocatable.aws\.amazon\.com/neuron"
    NAME NeuronDevice ip-192-168-47-173.us-west-2.compute.internal 1
  5. Buat file bernama neuron-ls.yaml dengan isi berikut ini. Manifes ini meluncurkan wadah Neuron Monitor yang memiliki neuron-ls alat yang diinstal.

    apiVersion: v1 kind: Pod metadata: name: neuron-ls spec: restartPolicy: Never containers: - name: neuron-container image: public.ecr.aws/g4h4h0b5/neuron-monitor:1.0.0 command: ["/bin/sh"] args: ["-c", "neuron-ls"] resources: limits: aws.amazon.com/neuron: 1 tolerations: - key: "aws.amazon.com/neuron" operator: "Exists" effect: "NoSchedule"
  6. Terapkan manifes dengan perintah berikut.

    kubectl apply -f neuron-ls.yaml
  7. Setelah Pod selesai berjalan, lihat lognya dengan perintah berikut.

    kubectl logs neuron-ls

    Contoh output di bawah ini.

    instance-type: inf2.xlarge instance-id: ... +--------+--------+--------+---------+ | NEURON | NEURON | NEURON | PCI | | DEVICE | CORES | MEMORY | BDF | +--------+--------+--------+---------+ | 0 | 2 | 32 GB | 00:1f.0 | +--------+--------+--------+---------+