云原生场景下,业务场景的多样性对容器平台的需求也越来越多样化,使用自定义镜像创建节点并快速创建相同配置自定义实例的需求也越来越普遍。本文为您介绍如何基于 ECS 快速制作自定义镜像。
说明
【邀测·申请试用】:自定义镜像功能目前处于邀测阶段,如需使用,请提交申请。
免责声明:自定义镜像属于非标准环境,火山引擎不提供官方支持以及持续维护。
目前,此方案仅适用于普通机型和 GPU 计算型机型,若需要基于 高性能计算 GPU 型 机型制作自定义镜像,请 提交工单 联系官方团队制作。
请勿随意修改/etc/fstab
。
仅支持使用 VKE 提供的基础镜像(推荐采用 5.4 内核)制作自定义镜像,VKE 当前提供的基础镜像参见:操作系统镜像概述。
建议使用新节点作为自定义镜像的基础机型,避免机器存在历史脏数据,影响节点的正常初始化流程。
若使用已有节点方式添加节点,务必保证系统盘容量大于镜像容量(建议至少预留 10 GiB),否则可能添加失败。
确保自定义镜像的大小小于节点池配置的系统云盘容量,否则将因系统云盘容量不足导致节点无法成功创建。
若需要保证多张支持 NVSwitch 的显卡(例如:A100、A800)间通过 NVSwitch 互联,可为 GPU 节点安装并启动与 GPU 驱动版本对应的 NVIDIA-Fabric Manager 软件包,详细介绍参见:安装 NVIDIA-Fabric Manager 软件包。
如需修改操作系统相关参数,建议自行在测试环境中完成充分测试验证,确定准确无误后再应用到生产环境,避免影响业务的正常运行。
说明
本步骤仅针对基于 ECS 制作自定义镜像的关键配置进行详细介绍,包括:实例配置、镜像、弹性公网 IP 和登录方式。创建 ECS 的详细步骤和参数配置介绍参见:通过向导购买实例。
配置项 | 说明 |
---|---|
计算规格 | 不同计算规格的网络、存储限速能力不同,请根据您的业务需求选择合适的计算规格,具体请参见:实例规格介绍。本场景选择 GPU 计算型ecs.g1te.xlarge 规格。 |
镜像 | 镜像为云服务器提供操作系统和必备的应用数据,不同地域和计算规格匹配不同的镜像,容器服务中各个地域公共镜像的详细对应关系参见:操作系统镜像概述。 |
配置项 | 说明 |
---|---|
弹性公网 IP | 默认随实例的创建自动为其分配弹性公网IP,提供公网(Internet)访问能力。本场景保持默认配置,为 ECS 分配弹性公网 IP。 |
配置项 | 说明 |
---|---|
登录方式 | 登录云服务器实例的安全凭证,本场景选择 密码 方式,需要配置 ECS 的 root 用户的登录密码,并确认密码。 说明 请牢记您所设置的密码,如遗忘,可登录 ECS 控制台重置密码。 |
合适的 ECS 创建完成后,即可根据实际使用场景自定义配置镜像,典型场景示例:安装 NVIDIA 自定义驱动、安装容器镜像、安装自定义应用。本场景以安装 GPU 驱动为例进行介绍,若还有其他自定义配置,可在此步骤进行补充。
说明
wget https://us.download.nvidia.com/tesla/470.161.03/NVIDIA-Linux-x86_64-470.161.03.run
sh NVIDIA-Linux-x86_64-470.161.03.run
nvidia-smi
执行以下命令,删除/var/lib/cloud
文件,清除 Cloud-Init 配置。若不删除,使用自定义镜像创建的云服务器实例将无法注入主机名、密码等信息。
rm -rf /var/lib/cloud echo -n > /etc/machine-id
为了保障自定义镜像在容器服务中的可用性,容器服务提供检查脚本对关键依赖项进行检查。可执行以下命令进行容器服务关键依赖项的环境检查:
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
预期输出结果如下:
若检查结果 全部通过,即可正常导出镜像使用;若存在未通过检查的依赖项,必须先解决所有问题再继续导出镜像。
注意
业务环境复杂多变,检查项目可能无法保证万无一失,建议自行在测试环境中完成充分验证,再应用于生产环境。
请根据 停止实例 指引,停止目标实例运行。
说明
若使用极速型 SSD 云盘创建自定义镜像,则无需停止实例,可以跳过此步骤。
...
中的 云盘和镜像 > 创建自定义镜像,说明
导出自定义镜像需要耗费一定时间,可返回自定义镜像列表查看导出进度。
若要将自定义镜像变成可以被 VKE 引用的镜像,需要通过声明定义一个特定的描述信息SYS_SUPPORT_VKE
。
SYS_SUPPORT_VKE
并保存配置。至此,基于 ECS 的自定义镜像制作完成,容器服务可使用此自定义镜像创建节点池。详细介绍参见:创建节点池。