Kubernetes以负载均衡的方式调度GPU-pod

时间:2019-07-23 07:17:28

标签: kubernetes load-balancing nvidia

有一个具有n个节点的kubernetes集群,其中一些节点上装有多个NVIDIA 1080Ti GPU卡。

我有两种豆荚 1.启用GPU,需要在配备GPU的节点上计划这些节点,其中pod将仅使用该节点上存在的GPU卡之一。 2.仅限于CPU,现在可以将它们安排在任何地方,最好在仅CPU的节点上进行调度。

计划问题已明确解决in this答案。

问题: 在配备GPU的节点上计划启用GPU的容器时,我希望能够确定我的容器要使用的多个GPU卡中的哪个GPU卡。此外,我正在考虑一个负载平衡器,该负载平衡器将透明地安装在决定GPU映射的黑白GPU硬件和容器上。

任何有关此体系结构的帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

您必须使用Official NVIDIA GPU device plugin而不是GCE的建议。可以按属性安排GPU

Pods可以根据在节点上发布的属性来指定设备选择器。这些可以在容器级别指定。例如:

apiVersion: v1
kind: Pod
metadata:
  name: gpu-pod
spec:
  containers:
    - name: cuda-container
      image: nvidia/cuda:9.0-base
      command: ["sleep"]
      args: ["100000"]
      computeResourceRequests: ["nvidia-gpu"]
  computeResources:
    - name: "nvidia-gpu"
      resources:
        limits:
          nvidia.com/gpu: 1
      affinity:
        required:
          - key: "nvidia.com/gpu-memory"
            operator: "Gt"
            values: ["8000"] # change value to appropriate mem for GPU

在NVIDIA GPU Installation Guide上检查Kubernetes

希望这会有所帮助