在 GKE 中安装 nvidia 插件时获取 Init:ErrImagePull
Posted
技术标签:
【中文标题】在 GKE 中安装 nvidia 插件时获取 Init:ErrImagePull【英文标题】:getting Init:ErrImagePull while installing nvidia plugin in GKE 【发布时间】:2022-01-14 23:38:11 【问题描述】:我无法在 GKE 中安装 Nvidia GPU 插件。我按照此链接https://cloud.google.com/kubernetes-engine/docs/how-to/gpus#installing_drivers 进行安装。在描述我得到的 pod 时
Failed to pull image "cos-nvidia-installer:fixed": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/library/cos-nvidia-installer:fixed": failed to resolve reference "docker.io/library/cos-nvidia-installer:fixed": pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
有人可以帮忙吗?
谢谢
【问题讨论】:
【参考方案1】:ErrImagePull 条件表示节点无法从容器镜像注册表中拉取容器镜像。此问题的一些潜在原因:
容器不可用或无法从节点访问 注册表中不存在容器映像 部署清单中指定的容器映像不正确创建集中式 cos-gpu-installer:fixed 的问题在于,我们无法将驱动程序版本与操作系统版本联系起来。它们在预加载之前要经过相关的资格认证和测试。因此,在特定的 GKE 版本上,您始终会获得相同的驱动程序版本。这使得拥有节点可以从注册表中提取的单个标签变得具有挑战性。
预加载的安装程序映像 "cos-nvidia-installer:fixed" 进行了一些更改,仅对某个 cos 版本使用默认驱动程序版本。
一种解决方法是在配置文件中使用另一个容器镜像设置驱动程序版本,即在守护程序集(e.g. gcr.io/cos-cloud/cos-gpu-installer@sha256:8d86a652759f80595cafed7d3dcde3dc53f57f9bc1e33b27bc3cfa7afea8d483)
中指定完整镜像版本,您也可以设置最新版本的容器镜像并尝试。由于此版本引用的是预加载的同一个图像,因此图像拉取应该非常快。
尝试更改configuration file 中的这些字段:
initContainers:
- image: gcr.io/cos-cloud/cos-gpu-installer@sha256:8d86a652759f80595cafed7d3dcde3dc53f57f9bc1e33b27bc3cfa7afea8d483
name: nvidia-driver-installer
和
env:
- name: NVIDIA_INSTALL_DIR_HOST
value: /home/kubernetes/bin/nvidia
- name: NVIDIA_INSTALL_DIR_CONTAINER
value: /usr/local/nvidia
- name: VULKAN_ICD_DIR_HOST
value: /home/kubernetes/bin/nvidia/vulkan/icd.d
- name: VULKAN_ICD_DIR_CONTAINER
value: /etc/vulkan/icd.d
- name: ROOT_MOUNT_DIR
value: /root
- name: NVIDIA_DRIVER_VERSION
value: "450.51.06"
volumeMounts:
【讨论】:
以上是关于在 GKE 中安装 nvidia 插件时获取 Init:ErrImagePull的主要内容,如果未能解决你的问题,请参考以下文章
在奇异容器中安装驱动程序后,nvidia-smi 无法正常工作