Ste*_*eve 5 plugins gpu scheduling go kubernetes
我在一台机器上有多个 gpu 卡,我需要让 k8s 按照我设置的一些规则分配 gpu/npus 设备。
例如,假设有8张id为0-7的gpu卡,只有device0?device1?device6和device7可用。现在我需要用 2 个设备创建一个 pod,这两个设备必须是 (device0, device1) 或 (device6, device7)。其他设备组合如 (device0, device6) 无效。
有没有办法做到这一点?我正在使用 1.18 版的 kubernetes 并实现了我自己的设备插件。
Cro*_*rou -1
我不明白你为什么要写这样的规则:
每个 device-id 都小于 4
如果你想限制你应该使用的 GPU 数量limits,这在Schedule GPUsrequests上有很好的解释。因此,您可以将资源限制为仅 4 个 GPU,如下所示:
apiVersion: v1
kind: Pod
metadata:
name: cuda-vector-add
spec:
restartPolicy: OnFailure
containers:
- name: cuda-vector-add
# https://github.com/kubernetes/kubernetes/blob/v1.7.11/test/images/nvidia-cuda/Dockerfile
image: "k8s.gcr.io/cuda-vector-add:v0.1"
resources:
limits:
nvidia.com/gpu: 4 # requesting 1 GPU
Run Code Online (Sandbox Code Playgroud)
如果不同节点上有不同类型的 GPU,您可以使用labels它,您可以在此处阅读包含不同类型 GPU 的集群。
Run Code Online (Sandbox Code Playgroud)# Label your nodes with the accelerator type they have. kubectl label nodes <node-with-k80> accelerator=nvidia-tesla-k80 kubectl label nodes <node-with-p100> accelerator=nvidia-tesla-p100
如果您的节点运行不同版本的 GPU,则使用节点标签和节点选择器将 Pod 调度到适当的 GPU。以下是此工作流程的说明:
作为节点引导的一部分,识别节点上的 GPU 硬件类型并将其公开为节点标签。
NVIDIA_GPU_NAME=$(nvidia-smi --query-gpu=gpu_name --format=csv,noheader --id=0)
source /etc/default/kubelet
KUBELET_OPTS="$KUBELET_OPTS --node-labels='alpha.kubernetes.io/nvidia-gpu-name=$NVIDIA_GPU_NAME'"
echo "KUBELET_OPTS=$KUBELET_OPTS" > /etc/default/kubelet
Run Code Online (Sandbox Code Playgroud)
通过节点亲和性规则指定 Pod 可以使用的 GPU 类型。
kind: pod
apiVersion: v1
metadata:
annotations:
scheduler.alpha.kubernetes.io/affinity: >
{
"nodeAffinity": {
"requiredDuringSchedulingIgnoredDuringExecution": {
"nodeSelectorTerms": [
{
"matchExpressions": [
{
"key": "alpha.kubernetes.io/nvidia-gpu-name",
"operator": "In",
"values": ["Tesla K80", "Tesla P100"]
}
]
}
]
}
}
}
spec:
containers:
-
name: gpu-container-1
resources:
limits:
alpha.kubernetes.io/nvidia-gpu: 2
Run Code Online (Sandbox Code Playgroud)
这将确保 Pod 被调度到具有 Tesla K80 或 Tesla P100 Nvidia GPU 的节点。
您可以在unofficial-kubernetes Scheduling gpus上找到其他相关信息。
| 归档时间: |
|
| 查看次数: |
637 次 |
| 最近记录: |