Skip to content

大规模装机流水线:Golden Image 制作、版本管理与灰度上线 ​

实验目标 ​

PXE 装机(05 章)解决"怎么装",Golden Image 流水线解决"装的快、装的一致、可回滚"——尤其当集群规模上百节点、驱动/系统要升级时:

  • 如何制作一份可复现的 Golden Image,而不是"某次手工装好系统的快照"?
  • 镜像升级怎么灰度上线,避免一次升级挂掉整批节点?
  • 镜像版本如何管理,出问题怎么回滚?

本篇以命令与流程拆解 Golden Image 流水线:制作、版本管理、灰度与验证。命令为通用实践示例,具体工具(Packer/Ansible/系统工具)以所用版本为准。

第一段:Golden Image 的制作原则 ​

Golden Image 不是"装好系统的快照",而是可复现的构建产物:

构建(构建机/CI)
  ├─ 基础系统安装(最小化安装,避免手工装机的漂移)
  ├─ 配置固化(Ansible/cloud-init 应用:时区、内核参数、SSH、NTP、sysctl)
  ├─ 基线固化(01 章:BIOS/固件已在装机前基线化;镜像内固化驱动版本与配置)
  └─ 产出 Golden Image(版本化:20261016-01-golden.tar.gz)

核心纪律:

  • 构建用代码,不用手点:一切配置变更进 Ansible/脚本,镜像可重建、可审计;
  • 最小化 + 运行时补:基础镜像保持最小,业务软件(驱动、运行库、监控)按层叠加,方便分层升级;
  • 版本化与校验:每个镜像带版本号 + sha256,构建记录(内容、时间、变更)可追溯——回滚的前提是"知道每个版本里有什么"。

第二段:镜像版本管理与升级流程 ​

镜像目录(版本化,Golden 只读)
├─ 20261001-01-golden  (base + driver 550)
├─ 20261008-02-golden  (base + driver 570 + 内核更新)
└─ 20261016-03-golden  (base + driver 570 + cuda 12.4 + 安全补丁)
  • 版本规则:Golden 镜像不原地修改——新需求产生新版本,旧版本保留用于回滚;
  • 升级路径:节点重装用新 Golden(装机流水线)+ 存量节点在线升级按灰度(见下段);
  • 回滚:Golden 回滚 = 用旧版本镜像重装(或在线回退驱动);镜像有版本,回滚才有目标——没有版本的镜像等于没有回滚能力。

第三段:灰度上线——不让一次升级挂掉整批 ​

镜像/系统升级采用**灰度(Canary)**策略,与业务发布同原则:

bash
# 灰度批次示例(Ansible 限制批次与失败阈值)
- hosts: gpu_nodes
  serial: 5            # 每批 5 台
  max_fail_percentage: 20
  tasks:
    - name: 升级驱动与内核
      ...
    - name: 验证(健康巡检:GPU 识别、带宽、服务)
      ...

灰度要点:

  1. 批次递进:先 1-2 台"冒烟"(升级 + 完整验证)→ 5% 批次 → 20% 批次 → 全量;每批验证通过才进下一批;
  2. 验证即门禁:每批升级后跑 01 章基线检查 + 02 章压测冒烟(GPU 识别、nvidia-smi 健康、训练启动);失败即停止,回滚该批;
  3. 分批不是分时:灰度期新旧版本共存,调度器(Slurm)确认新节点入池、旧节点可回滚;业务影响面控制在批内;
  4. 窗口选择:灰度选业务低峰,与 02 章交付节奏对齐。

工程观察:灰度失败的最大原因不是升级本身,而是验证不充分——"装完能启动"不等于"训练正常"。验证要包含真实负载冒烟(短训练任务/压测),否则问题在灰度期被放过,全量后爆发。

第四段:镜像验证——交付前回读 ​

  • 构建产物回读:解包校验 sha256、检查关键文件(驱动模块、服务、配置)存在且版本正确;
  • 实机冒烟:挑 1 台用新镜像重装,跑完整验证链(基线检查 + 压测冒烟 + 服务就绪);
  • 记录基线:新镜像的验证结果存档,作为后续灰度批次与全量的参照——与 02 章压测工具箱联动。

流水线检查清单 ​

  • [ ] Golden Image 由代码构建(Ansible/脚本),可重建、可审计
  • [ ] 镜像版本化 + sha256 + 构建记录,旧版本保留可回滚
  • [ ] 灰度批次策略(冒烟 → 5% → 20% → 全量),每批验证作门禁
  • [ ] 灰度验证含真实负载冒烟(短训练/压测),不只"能启动"
  • [ ] 回滚路径明确(重装旧 Golden / 在线回退驱动)
  • [ ] 构建产物回读 + 实机冒烟存档

工程启示 ​

  • 镜像工程的本质是可复现:代码构建 + 版本化 + 校验,Golden Image 才不是"玄学快照";
  • 灰度是升级的标配:百节点集群一次升级挂整批不可接受,批次递进 + 验证门禁是底线;
  • 回滚能力 = 版本管理能力:镜像没有版本,就没有回滚目标——版本管理先行。

下一篇预告:装机流水线就绪,预训练集群进入"算账"环节——下一篇《预训练算力与成本规划:GPU 需求估算与卡时预算》拆解训练业务的容量与成本模型。

AI-HPC 智算超算专家 · Contact: openaihpc@gmail.com