configs/nvidia-peermem-reloader/ds.yaml (72 lines of code) (raw):

--- apiVersion: apps/v1 kind: DaemonSet metadata: name: nvidia-peermem-reloader # More info about the namespace: # https://learn.microsoft.com/en-us/azure/aks/gpu-cluster?tabs=add-ubuntu-gpu-node-pool#manually-install-the-nvidia-device-plugin namespace: gpu-resources spec: selector: matchLabels: name: nvidia-peermem-reloader updateStrategy: type: RollingUpdate template: metadata: labels: name: nvidia-peermem-reloader spec: tolerations: - key: "sku" operator: "Equal" value: "gpu" effect: "NoSchedule" affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.azure.com/accelerator operator: In values: - nvidia # Mark this pod as a critical add-on; when enabled, the critical add-on # scheduler reserves resources for critical add-on pods so that they can # be rescheduled after a failure. # See https://kubernetes.io/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/ priorityClassName: "system-node-critical" containers: - name: nvidia-peermem-reloader-ctr image: mcr.microsoft.com/mirror/docker/library/ubuntu:24.04 command: - /bin/bash - -xc - apt update && apt install -y kmod && modprobe nvidia-peermem && echo "sleeping" && sleep inf # This is using the same logic as: https://github.com/NVIDIA/gpu-operator/blob/24e4a0e35272921248ba6b3ed0ce60872bbc29e1/assets/state-driver/0500_daemonset.yaml#L150-L189 startupProbe: exec: command: - /bin/bash - -c - modprobe nvidia-peermem initialDelaySeconds: 10 failureThreshold: 120 successThreshold: 1 periodSeconds: 10 timeoutSeconds: 10 livenessProbe: exec: command: - /bin/bash - -c - modprobe nvidia-peermem periodSeconds: 30 initialDelaySeconds: 30 failureThreshold: 1 successThreshold: 1 timeoutSeconds: 10 securityContext: privileged: true volumeMounts: - name: lib-modules mountPath: /lib/modules readOnly: true volumes: - name: lib-modules hostPath: path: /lib/modules type: Directory