全部文档
当前文档

共搜索到 0 条结果

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

制作镜像

最近更新时间:2026-06-16 17:51:51

本文介绍在金山云上制作自定义镜像的完整流程,包括准备工作、三种制作方式(基于实例、基于快照、使用 Packer 工具)以及使用限制与注意事项。

  • 用户可以基于正常运行的实例,创建自定义镜像。实例可以为“运行中”或“已关闭”状态。

  • 您可以通过已有实例或快照创建自定义镜像,以便快速复制系统环境,免除重复配置。

  • 每个地区默认支持500个自定义镜像,可在金山控制台配额列表查看资源配额。若有需求调整配额,具体操作请参见创建配额调整申请

准备工作

在制作镜像前,请根据操作系统类型完成以下准备工作,以确保镜像制作成功且实例能够正常启动。

Linux镜像

  • 删除/屏蔽 /etc/fstab 中的用户自定义挂载信息,仅保留系统自带的挂载配置。

    • 若保留自定义挂载项,基于该镜像创建的实例可能因无法挂载对应磁盘而启动失败。

Windows镜像

  • 开放DHCP协议端口:确保系统防火墙允许 UDP 67/68 端口的通信,以保证实例能够正常获取 IP 地址:

    • 方案一(推荐)

      netsh advfirewall firewall set portopening udp 67 enable
      netsh advfirewall firewall set portopening udp 68 enable

    • 或者使用旧版命令:

      netsh firewall set portopening udp 67 enable
      netsh firewall set portopening udp 68 enable

操作步骤

方式一:基于实例制作自定义镜像

适用于已有运行中实例的场景。

  1. 登录云服务器KEC控制台,默认进入云服务器 > 实例页面。

  2. 在目标实例对应的“操作”列中,选择更多 > 制作镜像

  3. 制作镜像可以根据业务形态自主选择镜像类型以及是否添加数据盘;其中镜像类型支持选择普通镜像及极速可用镜像,区别在于存储位置不同:

    普通镜像:镜像存储在对象存储KS3,本地盘及云硬盘均支持创建普通镜像;

    极速可用镜像:镜像存储在EBS集群,支持快速开机,仅支持系统盘为云盘机型创建;

  4. 当选择的是本地盘机型进行制作镜像时,如果选择增加了本地数据盘,则支持勾选支持快速开盘选项。勾选快速开盘后,使用该镜像开盘效率将有效提升。该选项会对该磁盘进行一次全量备份,该磁盘关联的快照链容量将会增加。如下图所示。

制作镜像.png
  1. 输入镜像名称,单击确认

制作完成后,即可以在云服务器 > 镜像页面查看并管理镜像。

可以使用自定义镜像创建实例重装系统,其中仅系统盘为SSD3.0的实例可使用对应可用区的极速可用镜像创建实例或重装系统。

方式二:基于快照创建自定义镜像

如果已有系统盘的快照,可以直接通过快照来创建自定义镜像。

  1. 登录云服务器KEC控制台,进入云服务器 > 快照列表页面。

  2. 在目标快照对应的“操作”列中,选择更多 > 制作镜像。制作镜像可以根据业务形态自主选择是否添加数据盘。

若您选择的系统盘快照类型为极速可用快照,则数据盘快照类型仅支持选择极速可用快照,创建出来的自定义镜像类型为极速可用镜像;若您选择的系统盘快照类型为普通快照,则数据盘快照类型仅支持选择普通快照,创建出来的自定义镜像类型为普通镜像。

image.png
  1. 输入镜像名称,单击确定

制作完成后,即可以在云服务器 > 镜像页面查看并管理镜像。

可以使用自定义镜像创建实例重装系统

方式三:使用Packer创建自定义镜像

Packer是一款轻量级的镜像定义工具,能够运行在常用的主流操作系统(如Windows、Linux和macOS)上。参见本文安装并使用Packer,轻松创建自定义镜像。

1.安装Packer

  • 链接并登录到Linux服务器。登录Linux实例服务器,请参见连接实例

  • 克隆存储库到 $GOPATH/src/github.com/kingsoftcloud/packer-plugin-ksyun
    $ mkdir -p $GOPATH/src/github.com/kingsoftcloud;
    $ cd $GOPATH/src/github.com/kingsoftcloud
    $ git clone git@github.com:kingsoftcloud/packer-plugin-ksyun.git

  • 构建并链接到Packer
    $ cd $GOPATH/src/github.com/kingsoftcloud/packer-plugin-ksyun
    $ make build
    $ln -s $GOPATH/bin/packer-plugin-ksyun ~/.packer.d/plugins/packer-plugin-ksyun

2.定义Packer模板

使用Packer创建自定义镜像时,需要创建一个JSON格式的模板文件。在该模板文件中,您需要指定创建自定义镜像的生成器和配置器。

这是一个示例模板,您也可以在example /目录中找到它

{
  "variables": {
    "access_key": "{{ env `KSYUN_ACCESS_KEY` }}",
    "secret_key": "{{ env `KSYUN_SECRET_KEY` }}"
  },
  "builders": [{
    "type":"ksyun-kec",
    "access_key":"{{user `access_key`}}",
    "secret_key":"{{user `secret_key`}}",
    "region":"cn-shanghai-2",
    "image_name":"packer_test",
    "source_image_id":"IMG-dd1f8324-1f27-46e0-ad6b-b41d8c8ff025",
    "instance_type":"N3.1B",
    "ssh_username":"root",
    "associate_public_ip_address": true
  }],
  "provisioners": [{
    "type": "shell",
    "inline": [
      "sleep 30",
      "yum install mysql -y"
    ]
  }]
}

您需要自定义的参数数值如下表所示。

参数

描述

access_key

您的AccessKeyID。

secret_key

您的AccessKeySecret。

region

创建自定义镜像时使用临时资源的地域。

image_name

自定义镜像的名称。

source_image_id

基础镜像的ID

instance_type

创建自定义镜像时生成的临时实例的类型。

provisioners

创建自定义镜像时使用的Packer配置器类型。

3.使用Packer创建自定义镜像

  • 导入您的AccessKeyID
    export KSYUN_ACCESS_KEY=<您的AccessKeyID>

  • 导入您的AccessKeySecret
    export KSYUN_SECRET_KEY=<您的AccessKeySecret>

  • 创建自定义镜像
    packer build example/ksyun.json

常见问题与注意事项

1. 镜像制作失败的可能原因

  • 实例处于异常状态(如已关机、重启中、系统损坏)。

  • Linux 实例 /etc/fstab 中存在错误的自定义挂载项。

  • Windows 实例防火墙未开放 DHCP 端口,导致实例启动后无法获取 IP。

  • 数据盘快照类型与系统盘快照类型不一致(基于快照制作时)。

  • 超出地域镜像配额上限。

2. 极速可用镜像的使用限制

  • 仅支持系统盘为 SSD3.0 云硬盘 的实例。

  • 极速可用镜像本身存储于 EBS 集群,不占用 KS3 存储空间,但会产生相应的 EBS 快照费用。

  • 本地盘机型无法使用极速可用镜像创建实例。

3. 镜像大小与费用

  • 自定义镜像的存储费用取决于实际占用空间。

  • 普通镜像存储于 KS3,按 KS3 标准存储计费。

  • 极速可用镜像按 EBS 快照计费规则收费。

  • 建议定期删除不再使用的镜像及关联快照,避免产生不必要的费用。

4. 跨地域使用镜像

  • 自定义镜像默认仅在同地域可用。若需在其他地域使用,请先执行复制镜像操作,将镜像复制到目标地域后再使用。

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈