Terraform GKE 上的 GPU 无法访问 /sys/firmware/efi/efivars 处的 efivars 文件系统,正在中止

Terraform GKE 上的 GPU 无法访问 /sys/firmware/efi/efivars 处的 efivars 文件系统,正在中止

我正在尝试让 Terraform 配置的 GKE 集群 (Google Cloud Kubernetes) 与 GPU 节点池一起运行。如果有人能告诉我缺少什么才能让 GPU 节点池正常工作,那就太好了。

我可以在 CPU 节点池上运行工作,但无法安装 GPU 节点池的驱动程序。文档关于如何设置这一点,但当我尝试按照它进行操作时,我在 GPU 节点上收到一个错误Can't access efivars filesystem at /sys/firmware/efi/efivars, aborting,提示运行守护进程集文档指向我。

我正在具有 GPU 的实例Ubuntu上使用该图像,并且可以确认节点正在运行 kubernetes 版本。n1-standard-16T41.11.10-gke.5

我认为一个有趣的注释可能是一个线索,即在节点详细信息页面中,您可以通过导航到集群,然后导航到集群中的节点,然后导航到 GPU 节点的详细信息之一来访问该页面,其中列出的 GPU 数量为 0,尽管它显示GPU accelerators每个节点有 1 个 GPU,来自节点池详细信息页面。我完全是在猜测,但我想这可能是因为我没有为这个节点池正确请求 GPU 资源,但我似乎无法弄清楚它如何适合 Terraform google_container_node_pool 资源。google_container_node_pool不过,我在 GPU 节点池中确实有这个:

resource "google_container_node_pool" "gpu_training_nodes" {    
  ...
  node_config {
    ...
    guest_accelerator {
      type  = "nvidia-tesla-t4"
      count = 1
    }
  }
}

答案1

通过将集群中的所有节点升级到相同的 kubernetes 版本,我能够让 GPU 出现并可用。以前,主节点和 CPU 节点处于开启状态1.11.6-gke.11。我不知道这有什么帮助,但这是我所做的唯一更改。执行更新可能会导致某些资源停机,然后重新配置某些资源,但不必停机或发生如此戏剧性的事情,所以我不确定它是如何造成差异的……

我仍然收到efivars错误,但它似乎并不重要(目前)。

相关内容