fake-dcgm-exporter
Nov 19, 2024 21:00 · 421 words · 1 minute read
fake-dcgm-exporter 是一个 DCGM Exporter 模拟器,为不具备 NVIDIA GPU 的开发环境提供虚假 GPU 指标。
通过配置文件来自定义 GPU 规格、数量、指标数据以及工作负载(Pod):
model: A100 # GPU 型号(3 种可选)
number: 8 # GPU 总数量
workloads:
- podName: test-pod1
namespace: foo
gpus: 1 # foo 命名空间下的 test-pod1 Pod 使用 1 个 GPU
- podName: test-pod2
namespace: bar
gpus: 4 # bar 命名空间下的 test-pod2 Pod 使用 4 个 GPU
- podName: test-pod3
namespace: baz
gpus: 3 # baz 命名空间下的 test-pod3 Pod 使用 3 个 GPU
# Pod 使用 GPU 的数量和不能超过 GPU 总数
目前内置 3 种 NVIDIA GPU 的规格(数据均为真实环境采样得来,将逐渐补充主流 GPU):
- A100-SXM4-40GB(默认):配置文件中
model
字段的值设置为A100
- GeForce RTX 4090:配置文件中
model
字段的值设置为4090
- A800-SXM4-80GB:配置文件中
model
字段的值设置为A800
Docker
使用 Docker 快速运行 fake-dcgm-exporter:
$ mkdir -p /etc/fake-dcgm-exporter
$ curl -sSL -o /etc/fake-dcgm-exporter/config.yaml https://raw.githubusercontent.com/crazytaxii/fake-dcgm-exporter/refs/heads/main/config.yaml
# 根据需求修改配置文件
$ docker run --name=fake-dcgm-exporter --rm -d --network=host -v /etc/fake-dcgm-exporter:/etc/fake-dcgm-exporter crazytaxii/fake-dcgm-exporter:latest
通过 curl 访问并测试:
$ curl http://127.0.0.1:9400/metrics
Kubernetes
在 Kubernetes 上部署 fake-dcgm-exporter:
$ curl -sSL https://raw.githubusercontent.com/crazytaxii/fake-dcgm-exporter/refs/heads/main/manifests/all.
yaml
# 根据需求修改配置文件
$ kubectl create -f all.yaml
通过 curl 访问并测试:
$ SERVICE_IP=$(kubectl get svc -n monitoring dcgm-exporter -o jsonpath='{.spec.clusterIP}')
$ curl http://${SERVICE_IP}:9400/metrics