You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自动安装GCP上NVIDIA NGC公共计算镜像VM的NVIDIA驱动?

自动化GCP NGC镜像GPU驱动预装与自定义镜像构建

我之前也碰到过这个手动确认的问题,刚好可以用GCP的**启动脚本(Startup Script)**来解决,完美适配CI/CD流水线,不用手动SSH操作,还能固定驱动版本。下面是具体的实现步骤:

1. 用启动脚本自动完成驱动安装(含版本固定)

NVIDIA的NGC镜像启动时会触发内置的驱动安装脚本,这个脚本支持非交互式模式,我们可以通过启动脚本提前设置环境变量,自动确认安装并指定驱动版本。

修改你的gcloud compute instances create命令,添加启动脚本参数:

gcloud compute instances create $INSTANCE_NAME \
  --project=$PROJECT \
  --zone=$ZONE \
  --machine-type=n1-standard-16 \
  --maintenance-policy=TERMINATE \
  --network-interface=network-tier=PREMIUM,subnet=default \
  --service-account=my-service-account@$PROJECT.iam.gserviceaccount.com \
  --scopes=https://www.googleapis.com/auth/cloud-platform \
  --accelerator=count=1,type=nvidia-tesla-t4 \
  --image=nvidia-gpu-cloud-image-2022061 \
  --image-project=nvidia-ngc-public \
  --boot-disk-size=200 \
  --boot-disk-type=pd-standard \
  --no-shielded-secure-boot \
  --shielded-vtpm \
  --shielded-integrity-monitoring \
  --reservation-affinity=any \
  --no-restart-on-failure \
  --metadata startup-script='#!/bin/bash
    # 禁用交互式提示,自动确认所有安装选项
    export DEBIAN_FRONTEND=noninteractive
    # 固定驱动版本(替换成你需要的版本,比如510.73.08)
    export NVIDIA_DRIVER_VERSION=510.73.08
    # 触发NGC镜像自带的驱动安装脚本
    /usr/bin/nvidia-driver-installer
    # 验证驱动安装状态
    nvidia-smi
    # 安装完成后自动关机,确保磁盘状态稳定
    shutdown -h now'

关键细节说明:

  • DEBIAN_FRONTEND=noninteractive:彻底跳过所有交互式确认步骤,让安装全程自动完成
  • NVIDIA_DRIVER_VERSION:指定固定的驱动版本,避免每次安装最新版带来的环境不一致问题
  • 最后执行shutdown -h now:让VM安装完成后自动关机,保证后续创建镜像时磁盘处于只读状态,避免损坏

2. 等待VM关机后创建自定义镜像

在CI/CD流水线中,必须等待VM完全关机后再执行镜像创建命令,否则可能导致镜像数据不完整。可以用gcloud compute instances wait命令监听VM状态:

# 等待VM进入TERMINATED状态
gcloud compute instances wait $INSTANCE_NAME \
  --project=$PROJECT \
  --zone=$ZONE \
  --state=TERMINATED

# 创建自定义镜像,添加版本和描述便于管理
gcloud compute images create $CUSTOM_IMAGE_NAME \
  --project=$PROJECT \
  --source-disk=$INSTANCE_NAME \
  --source-disk-zone=$ZONE \
  --family=gpu-preinstalled \
  --description="Preinstalled NVIDIA driver $NVIDIA_DRIVER_VERSION based on NGC image"

3. CI/CD流水线整合注意事项

  • 权限配置:确保CI/CD使用的服务账号拥有以下核心权限:
    • compute.instances.create、compute.instances.delete(创建和清理临时VM)
    • compute.images.create(创建自定义镜像)
    • compute.instances.setMetadata(设置启动脚本)
  • 资源清理:创建镜像后,记得删除临时VM,避免产生不必要的云资源费用:
    gcloud compute instances delete $INSTANCE_NAME \
      --project=$PROJECT \
      --zone=$ZONE \
      --quiet
    
  • 参数化管理:把驱动版本、镜像名称、区域等配置做成流水线变量,方便统一维护和版本迭代

这样整个流程就完全自动化了,不需要任何手动操作,每次运行流水线都会生成一个固定驱动版本的干净镜像,完美匹配你的需求。

内容的提问来源于stack exchange,提问作者epic_gcp_user

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 16:10:28