全部文档
当前文档

暂无内容

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

文档中心

制作镜像

最近更新时间:2026-10-08 10:01:32

本文介绍在金山云上制作自定义镜像的完整流程,包括准备工作、基于实例、基于快照以及使用 Packer 工具三种制作方式,帮助您快速复制系统环境。

使用限制

  • 实例需处于运行中或已关闭状态方可制作镜像。

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

  • 极速可用镜像仅支持系统盘为 SSD3.0 云硬盘的实例,本地盘机型无法使用极速可用镜像创建实例。

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

准备工作

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

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. 在制作镜像页面,配置各项参数,点击确定。

    参数

    是否必须

    说明

    镜像名称

    是

    当前镜像名称,用于区分和筛选,用户自定义即可。

    镜像描述

    是

    针对当前镜像的描述性信息。支持2-256个字符,支持中文,字母,数字,以及-_符号。

    镜像类型

    是

    支持选择普通镜像或极速可用镜像,主要区别在于存储位置不同:

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

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

    添加数据盘

    否

    根据业务需要选择是否添加数据盘。

    若实例使用本地硬盘,则在添加数据盘时,可勾选支持快速开盘。勾选后使用该镜像开盘效率将有效提升,但会对该磁盘进行一次全量备份,该磁盘关联的快照链容量将会增加。

  4. 系统自动跳转至自定义镜像页面,可查看当前镜像制作进度和状态。

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

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

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

  1. 登录云服务器KEC控制台。

  2. 在左侧导航栏中,选择实例,进入实例列表页面。

  3. 在实例列表中,点击目标实例名称/ID,进入其详情页面。

  4. 在实例详情页面,选择快照页签,点击目标快照操作列更多>制作镜像。

  5. 在制作镜像页面,配置各项参数,点击确定。

    参数

    是否必须

    说明

    镜像名称

    是

    当前镜像名称,用于区分和筛选,用户自定义即可。

    数据盘快照

    否

    根据业务形态自主选择是否勾选添加数据盘快照。

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

  6. 在左侧导航栏,选择镜像>自定义镜像,可查看当前镜像制作进度和状态。

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

Packer 是一款轻量级的镜像定义工具,能够运行在 Windows、Linux 和 macOS 上。

步骤一:安装 Packer

  1. 连接并登录到 Linux 服务器。

  2. 克隆存储库到 $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
  3. 构建并链接到 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

步骤二:定义 Packer 模板

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

{
  "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

是

您的 AccessKey ID。

secret_key

是

您的 AccessKey Secret。

region

是

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

image_name

是

自定义镜像的名称。

source_image_id

是

基础镜像的 ID。

instance_type

是

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

provisioners

是

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

步骤三:使用 Packer 创建自定义镜像

  1. 获取平台AK/SK。

  2. 导入您的 AccessKey ID。

    export KSYUN_ACCESS_KEY=***
  3. 导入您的 AccessKey Secret。

    export KSYUN_SECRET_KEY=<您的Acc…ret>
  4. 创建自定义镜像。

    packer build example/ksyun.json

常见问题与注意事项

  • 镜像制作失败的可能原因包括:实例处于异常状态(如已关机、重启中、系统损坏);Linux 实例 /etc/fstab 中存在错误的自定义挂载项;Windows 实例防火墙未开放 DHCP 端口导致无法获取 IP;数据盘快照类型与系统盘快照类型不一致;超出地域镜像配额上限。

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

  • 自定义镜像的存储费用取决于实际占用空间。普通镜像存储于 KS3,按 KS3 标准存储计费;极速可用镜像按 EBS 快照计费规则收费。

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

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

纯净模式

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