要使用cadvisor监视pod gpu使用情况,我们需要将对NVML库路径(例如/ usr / lib / nvidia-418)的访问权限安装到cadvisor。
当前,我在k8s集群上创建一个守护程序集,以在每个节点上部署cadvisor。
但是,我需要支持NVML库路径的多个版本。例如,某些服务器使用/ usr / lib / nvidia-418,而其他服务器使用/ usr / lib / nvidia-410。 直接指定nvml路径变得不可能。
那么在这种情况下的最佳实践是什么?
我有一些想法,但是我不确定哪个是最好的。
2。在每台服务器上创建一个软链接,将/ usr / lib / nvidia-418 / *链接到/ usr / lib / nvmlpath。
3。在cadvisor启动之前添加一个初始化作业,在该作业中创建软链接。但是我不确定它是否可以工作。
4。添加cadvisor的sidecar创建软链接,但不能保证cadvisor在获得nvml path的路径之前就完成sidecar。
答案 0 :(得分:0)
我不确定这是否是最好的方法,但是为了避免头痛。
我将使用nvidia-docker构建cadvisor,然后还将docker守护进程设置为默认使用nvidia-container-runtime。
不同服务器唯一需要的就是nvidia驱动程序,这应该没问题。