使用cadvisor监视具有不同GPU驱动程序的服务器的最佳实践是什么

时间:2019-10-25 09:48:27

标签: kubernetes gpu nvidia cadvisor

要使用cadvisor监视pod gpu使用情况,我们需要将对NVML库路径(例如/ usr / lib / nvidia-418)的访问权限安装到cadvisor。

当前,我在k8s集群上创建一个守护程序集,以在每个节点上部署cadvisor。

但是,我需要支持NVML库路径的多个版本。例如,某些服务器使用/ usr / lib / nvidia-418,而其他服务器使用/ usr / lib / nvidia-410。 直接指定nvml路径变得不可能。

那么在这种情况下的最佳实践是什么?

我有一些想法,但是我不确定哪个是最好的。

  1. 按nvml路径划分服务器,一个群集中的所有服务器都使用相同的nvml库版本。

2。在每台服务器上创建一个软链接,将/ usr / lib / nvidia-418 / *链接到/ usr / lib / nvmlpath。

3。在cadvisor启动之前添加一个初始化作业,在该作业中创建软链接。但是我不确定它是否可以工作。

4。添加cadvisor的sidecar创建软链接,但不能保证cadvisor在获得nvml path的路径之前就完成sidecar。

  1. 基于cadvisor构建docker映像,在CMD中添加软链接过程。

1 个答案:

答案 0 :(得分:0)

我不确定这是否是最好的方法,但是为了避免头痛。

我将使用nvidia-docker构建cadvisor,然后还将docker守护进程设置为默认使用nvidia-container-runtime。

不同服务器唯一需要的就是nvidia驱动程序,这应该没问题。