You need to enable JavaScript to run this app.
导航

基于 ECS 制作自定义镜像

最近更新时间2023.12.15 10:33:19

首次发布时间2023.10.25 17:00:34

云原生场景下,业务场景的多样性对容器平台的需求也越来越多样化,使用自定义镜像创建节点并快速创建相同配置自定义实例的需求也越来越普遍。本文为您介绍如何基于 ECS 快速制作自定义镜像。

说明

邀测·申请试用】:自定义镜像功能目前处于邀测阶段,如需使用,请提交申请。

前提条件

  • 如需使用自定义镜像功能,请 提交工单 申请。
  • 已经完成创建 ECS 实例必须的资源创建,例如:VPC、计算规格等。
  • 针对本场景中的示例,已经获取目标 GPU 驱动链接,目标驱动链接可登录 NVIDIA 官网 下载。
  • 根据实际情况,已经准备其他自定义镜像打包内容,例如:容器镜像、自定义应用等。

使用限制

  • 免责声明:自定义镜像属于非标准环境,火山引擎不提供官方支持以及持续维护

  • 目前,此方案仅适用于普通机型和 GPU 计算型机型,若需要基于 高性能计算 GPU 型 机型制作自定义镜像,请 提交工单 联系官方团队制作。

  • 请勿随意修改/etc/fstab

  • 建议使用 VKE 提供的基础镜像(推荐采用 5.4 内核)制作自定义镜像,VKE 当前提供的基础镜像包括:veLinux 和 veLinux CentOS 兼容版本。

  • 建议使用新节点作为自定义镜像的基础机型,避免机器存在历史脏数据,影响节点的正常初始化流程。

  • 若使用已有节点方式添加节点,务必保证系统盘容量大于镜像容量(建议至少预留 10 GiB),否则可能添加失败。

  • 确保自定义镜像的大小大于节点池配置的系统云盘容量,否则将因系统云盘容量不足导致节点无法成功创建。

  • 若需要保证多张支持 NVSwitch 的显卡(例如:A100、A800)间通过 NVSwitch 互联,可为 GPU 节点安装并启动与 GPU 驱动版本对应的 NVIDIA-Fabric Manager 软件包,详细介绍参见:安装 NVIDIA-Fabric Manager 软件包

  • 如需修改操作系统相关参数,建议自行在测试环境中完成充分测试验证,确定准确无误后再应用到生产环境,避免影响业务的正常运行。

操作步骤

步骤一:创建 ECS 实例

  1. 登录 云服务器控制台
  2. 在左侧导航栏选择 实例与镜像 > 实例,进入实例管理页面。
  3. 单击 创建实例,根据操作指引配置实例相关基础相关信息。

说明

本步骤仅针对基于 ECS 制作自定义镜像的关键配置进行详细介绍,包括:实例配置、镜像、弹性公网 IP 和登录方式。创建 ECS 的详细步骤和参数配置介绍参见:通过向导购买实例

alt

配置项说明
计算规格不同计算规格的网络、存储限速能力不同,请根据您的业务需求选择合适的计算规格,具体请参见:实例规格介绍。本场景选择 GPU 计算型ecs.g1te.xlarge规格。

镜像

镜像为云服务器提供操作系统和必备的应用数据,不同地域和计算规格匹配不同的镜像。 因 VKE 所使用的自定义镜像需要以 veLinux 为基础,所以,此处按需选择 veLinux 1.0 或 1.0 CentOS 兼容版。
容器服务中各个地域公共镜像的详细对应关系参见:CreateNodePool

alt

配置项说明
弹性公网 IP默认随实例的创建自动为其分配弹性公网IP,提供公网(Internet)访问能力。本场景保持默认配置,为 ECS 分配弹性公网 IP。

alt

配置项说明

登录方式

登录云服务器实例的安全凭证,本场景选择 密码 方式,需要配置 ECS 的 root 用户的登录密码,并确认密码。

说明

请牢记您所设置的密码,如遗忘,可登录 ECS 控制台重置密码。

步骤二:自定义配置镜像

合适的 ECS 创建完成后,即可根据实际使用场景自定义配置镜像,典型场景示例:安装 NVIDIA 自定义驱动、安装容器镜像、安装自定义应用。本场景以安装 GPU 驱动为例进行介绍,若还有其他自定义配置,可在此步骤进行补充。

说明

  • 此步骤中自定义安装的内容均由用户根据实际使用场景自行确定,所有内容安装完成后即可进行后续操作。
  • GPU 驱动必须与 GPU 型号匹配,因此,切勿直接使用以下示例中的 GPU 驱动链接,完整的 GPU 驱动安装示例和说明可参考:安装 GPU 驱动
  1. 登录 NVIDIA 驱动下载官网,选择操作系统和 CUDA 工具包版本,获取 GPU 驱动链接。
  2. 通过控制台或 SSH 工具登录 ECS 实例,详细操作参见:登录 Linux 实例
  3. 粘贴 NVIDIA 官网已获取的 GPU 驱动链接地址,下载安装包。示例命令如下:
wget https://us.download.nvidia.com/tesla/470.161.03/NVIDIA-Linux-x86_64-470.161.03.run
  1. 执行以下命令,运行驱动安装程序,并按提示进行后续操作。
sh NVIDIA-Linux-x86_64-470.161.03.run
  1. 安装完成后,执行以下命令进行验证。若返回信息类似下图中的 GPU 信息,则说明驱动安装成功。
nvidia-smi

alt

步骤三:清除 Cloud-Init 配置

执行以下命令,删除/var/lib/cloud文件,清除 Cloud-Init 配置。若不删除,使用自定义镜像创建的云服务器实例将无法注入主机名、密码等信息。

rm -rf /var/lib/cloud

步骤四:关键依赖项检查

为了保障自定义镜像在容器服务中的可用性,容器服务提供检查脚本对关键依赖项进行检查。可执行以下命令进行容器服务关键依赖项的环境检查:

wget -qc https://tailor-vke.tos-cn-beijing.volces.com/tailor-vke-detection.tar.gz && tar -zxvf tailor-vke-detection.tar.gz && cd test/os && bash build1.sh

预期输出结果如下:

alt

若检查结果 全部通过,即可正常导出镜像使用;若存在未通过检查的依赖项,必须先解决所有问题再继续导出镜像。

注意

业务环境复杂多变,检查项目可能无法保证万无一失,建议自行在测试环境中完成充分验证,再应用于生产环境。

步骤五:(条件可选)停止实例

请根据 停止实例 指引,停止目标实例运行。

说明

若使用极速型 SSD 云盘创建自定义镜像,则无需停止实例,可以跳过此步骤。

步骤六:导出自定义镜像

  1. 返回 云服务器控制台
  2. 在左侧导航栏选择 实例与镜像 > 实例,进入实例管理页面。
  3. 单击目标实例右侧操作列...中的 云盘和镜像 > 创建自定义镜像

alt

  1. 配置自定义镜像名称,单击 确定 即可开始导出自定义镜像。

说明

导出自定义镜像需要耗费一定时间,可返回自定义镜像列表查看导出进度。

步骤七:添加描述信息

若要将自定义镜像变成可以被 VKE 引用的镜像,需要通过声明定义一个特定的描述信息SYS_SUPPORT_VKE

  1. 登录 云服务器控制台
  2. 在左侧导航栏选择 实例与镜像 > 镜像,进入进行管理页面。
  3. 单击自定义镜像页签栏中的目标镜像名称,进入自定义镜像详情页面。
  4. 单击描述后面的修改按钮,在描述框中输入SYS_SUPPORT_VKE并保存配置。

alt

后续操作

至此,基于 ECS 的自定义镜像制作完成,容器服务可使用此自定义镜像创建节点池。详细介绍参见:创建节点池

alt