Kubernetes: k8s: v1.3.10,如何使用gpu,在gpu上运行容器?

创建于 2017-02-27  ·  3评论  ·  资料来源: kubernetes/kubernetes

现在我有将近一周的时间来研究这个问题。 但我失败了。
环境:redhat7.2
k8s:v1.3.10 cuda:v7.5内核版本:367.44 t ensorflow:0.11 gpu:1080
我们的平台基于tensorflow和k8s。它是用于机器学习的训练。
使用cpu时,可以,但不能在gpu上工作,我想知道为什么。
我测试了你说的很多例子,但还是失败了
我的集群:1 主 2 节点。 每个节点都有一个gpu卡,只有master没有
首先我测试像@Hui-Zhi 说的:

vim  test.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nvidia-gpu-test
spec:
  containers:
  - name: nvidia-gpu
    image: nginx
    resources:
      limits:
        alpha.kubernetes.io/nvidia-gpu: 1

是的,我测试过,它有效。 如果我将 nvidia-gpu: 1 更改为 2,则失败。 豆荚保持待定。 并描述发现:没有节点可以满足这一点。因为每个节点只有一张 GPU 卡,我认为它可以工作。
但问题来了:如何在 gpu 上运行? 这个例子只证明k8s可以拿到gpu,知道gpu,但是怎么跑呢? 我如何使用 yaml 文件创建一个在 gpu 资源上运行的 pod?

然后,我找到了另一种方法:nvidia-docker
我拉 gpu-image: gcr.io/tensorflow/t ensorflow:0.11-gpu ,并根据 docker 运行 mnist.py 演示, docker run -it ${image} /bin/bash
但失败了。 诸如“无法打开 CUDA 库 libcuda.so,无法找到 libcuda.so”之类的错误,
有没有人遇到过同样的问题?
然后我发现有人说:gpu 需要使用 nvidia-docker
幸运的是我安装为 tensorflow: https ://www.tensorflow.org/install/install_linux#gpu_support 说,根据 nvidia-docker 我发现我的训练在 gpu 上运行,gpu 内存几乎 7g,几乎 70%
我是这样运行的: nvidia-docker run -it ${image} /bin/bash
python mnist.py
是的,它有效。 但是一个新问题来了:我应该使用 docker 在 cpu 上运行,在 gpu 上使用 nvidia-docker 吗? 我只是在 docker 上运行 gpu,也许是 nvidia-docker,但是如何在 k8s 上运行 gpu。
k8s 容器使用 docker 而不是 nvidia-docker,那么我该如何以同样的方式做到这一点,你能帮我吗? 我想知道如何在 k8s 上运行 gpu,而不仅仅是演示或测试 yaml 来证明 k8s 支持 gpu。
希望你能回答我,我在等......
谢谢。

最有用的评论

我刚刚测试过,它确实有效。 我之前安装的卷是错误的。 我使用的新 yaml 如下

apiVersion: v1
kind: Pod
metadata:
  name: gpu-test
spec:
  volumes:
  - name: nvidia-driver
    hostPath:
      path: /var/lib/nvidia-docker/volumes/nvidia_driver/367.44
  containers:
  - name: tensorflow
    image: tensorflow:0.11.0-gpu
    ports:
    - containerPort: 8000
    resources:
      limits:
        alpha.kubernetes.io/nvidia-gpu: 1
    volumeMounts:
    - name: nvidia-driver
      mountPath: /usr/local/nvidia/
      readOnly: true

我解决了我的问题,谢谢

所有3条评论

@tbchj #42116 现在已合并,应与 1.6 一起发布

@cmluciano是的,谢谢,也许你是对的。 我刚刚完全阅读了#42116,它似乎有我需要的东西。

我刚刚测试过,它确实有效。 我之前安装的卷是错误的。 我使用的新 yaml 如下

apiVersion: v1
kind: Pod
metadata:
  name: gpu-test
spec:
  volumes:
  - name: nvidia-driver
    hostPath:
      path: /var/lib/nvidia-docker/volumes/nvidia_driver/367.44
  containers:
  - name: tensorflow
    image: tensorflow:0.11.0-gpu
    ports:
    - containerPort: 8000
    resources:
      limits:
        alpha.kubernetes.io/nvidia-gpu: 1
    volumeMounts:
    - name: nvidia-driver
      mountPath: /usr/local/nvidia/
      readOnly: true

我解决了我的问题,谢谢

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

ttripp picture ttripp  ·  3评论

chowyu08 picture chowyu08  ·  3评论

jadhavnitind picture jadhavnitind  ·  3评论

pwittrock picture pwittrock  ·  3评论

theothermike picture theothermike  ·  3评论