如何确保容器运行时是 kubernetes 节点的 nvidia-docker?
Posted
技术标签:
【中文标题】如何确保容器运行时是 kubernetes 节点的 nvidia-docker?【英文标题】:How to ensure the container runtime is nvidia-docker for the kubernetes node? 【发布时间】:2019-07-02 10:38:16 【问题描述】:我需要检查一下 kubernetes 节点是否配置正确。需要为其中一个工作节点使用 nvidia-docker。
使用:https://github.com/NVIDIA/k8s-device-plugin
如何确认设备插件的配置是否正确?
$ kubectl describe node mynode
Roles: worker
Capacity:
cpu: 4
ephemeral-storage: 15716368Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 62710736Ki
nvidia.com/gpu: 1
pods: 110
Allocatable:
cpu: 3800m
ephemeral-storage: 14484204725
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 60511184Ki
nvidia.com/gpu: 1
pods: 110
System Info:
Machine ID: f32e0af35637b5dfcbedcb0a1de8dca1
System UUID: EC2A40D3-76A8-C574-0C9E-B9D571AA59E2
Boot ID: 9f2fa456-0214-4f7c-ac2a-2c62c2ef25a4
Kernel Version: 3.10.0-957.1.3.el7.x86_64
OS Image: CentOS Linux 7 (Core)
Operating System: linux
Architecture: amd64
Container Runtime Version: docker://18.9.1
Kubelet Version: v1.11.2
Kube-Proxy Version: v1.11.2
但是,我可以在节点资源下看到nvidia.com/gpu
,问题是:如果节点配置正确,Container Runtime Version
是否应该说nvidia-docker
?目前,它显示docker
,我猜这看起来很可疑!
【问题讨论】:
【参考方案1】:不确定你是否已经这样做了,但似乎描述得很清楚:
安装 NVIDIA 驱动程序和 NVIDIA docker 后,您需要在您的节点上启用 nvidia 运行时,方法是按照指定的 here 编辑 /etc/docker/daemon.json
。
所以正如指令所说,如果你可以看到runtimes
是正确的,你只需要编辑那个配置。
然后部署一个 DeamonSet(这是一种确保 pod 在每个节点上运行的方法,可以访问主机网络和设备):
kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v1.11/nvidia-device-plugin.yml
现在您的容器已准备好使用 GPU - 如 here. 所述
【讨论】:
将gpu节点添加到现有集群时顺序是否相同?有什么需要注意的吗?以上是关于如何确保容器运行时是 kubernetes 节点的 nvidia-docker?的主要内容,如果未能解决你的问题,请参考以下文章