我正在尝试让 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-16
T4
1.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
错误,但它似乎并不重要(目前)。