You need to enable JavaScript to run this app.
文档中心
持续交付

持续交付

复制全文
下载 pdf
最佳实践
通过流水线自动转换 Nydus 加速镜像
复制全文
下载 pdf
通过流水线自动转换 Nydus 加速镜像
本文介绍如何借助火山引擎持续交付与镜像仓库的联动能力,在向镜像推送原始镜像后,自动触发流水线完成 Nydus 加速镜像的转换与回推,实现推送即转换的全自动镜像加速链路。​
背景信息​
Nydus 是一种支持按需加载(Lazy Loading)的容器镜像加速格式,可显著降低容器冷启动时的镜像拉取耗时。火山引擎镜像仓库支持托管符合 OCI 标准的云原生制品,包括 Nydus 格式的加速镜像副本。​
业务镜像通常由流水线流程推送至镜像仓库。将镜像仓库的事件通知与持续交付的镜像源 Webhook 触发器串联,即可在每次推送原始镜像后,自动转换出带 -nydus 后缀的加速镜像,全程无需人工干预。​
实现流程​
Nydus 镜像自动转换的整体流程如下图所示。​
​​​
前提条件​
  • 本地环境已准备镜像。​
操作步骤​
第一步:创建流水线​
在持续交付中创建一条用于 Nydus 转换的流水线。​
  1. 在左侧导航栏选择 工作区,在工作区页面单击目标工作区名称,进入当前工作区。​
  1. 在右侧 流水线 页面单击 创建流水线。​
  1. 在 选择流水线模板 对话框选择 空白模板 ,单击 创建。​
第二步:添加动态自定义变量 tag​
在流水线中创建动态自定义变量 tag ,后续 Nydus 镜像转换 任务中使用自定义变量 $(parameters.tag) 动态设置转换后镜像的版本号。​
  1. 在 流程编排 页面,单击 变量管理 > 自定义变量 > 添加。​
  • ​​​
  1. 配置自定义变量的参数,完成后单击 确定。本文仅介绍和本场景相关的参数,完整的参数介绍参见 自定义变量。​
  • ​
    配置项​
    说明​
    参数​
    输入自定义变量的名称。本示例为 tag。​
    类型​
    选择变量的类型,本示例按照 字符串。​
    动态​
    是否打开动态设置开关,本示例选择开启。​
    ​
第三步:添加Nydus 镜像转换​
  1. 在 流程编排 中,单击 + > 添加任务。​
  • ​​​
  1. 在 步骤 单击 添加 > 镜像 > Nydus 镜像转换。​
  • ​​​
  1. 配置任务参数,完成后单击 确认。本文仅介绍和 Nydus 镜像任务转换相关的参数,完整的参数保持默认值。​
  • ​
    配置项​
    说明​
    步骤名称​
    默认为 Nydus 镜像转换,支持自定义步骤名称。​
    源镜像地域​
    选择待转换镜像所属镜像仓库的地域。目前支持的地域请参见 镜像仓库开服地域。​
    说明​
    由于网络影响,使用公共资源池推送至柔佛地域可能需要较长时间。建议更换为私有资源池推送柔佛任务。​
    源仓库实例​
    选择 前提条件 中待转换镜像所属的镜像仓库实例。​
    源命名空间​
    注意​
    命名空间必须已存在,否则将推送失败,报错 401 Unauthorized。​
    选择 前提条件 中待转换镜像所属镜像仓库命名空间。​
    源 OCI 制品仓库​
    选择 前提条件 中待转换镜像所属的 OCI 制品仓库。本示例为 golang-demo-app。​
    源镜像版本​
    使用自定义变量$(parameters.tag)动态设置版本号。​
    ​
第四步:创建镜像源 Webhook 触发器​
  1. 在流水线的 流程编排 页签的 代码源&触发器 区域,单击 添加 > 镜像源 Webhook 触发。​
  • ​​​
  1. 配置触发规则,配置完成后单击 确定。本文仅介绍和本场景相关的参数,完整的参数介绍参见 镜像源 Webhook 触发。​
  • ​​​
  • ​
    配置项​
    说明​
    触发器名称​
    自定义镜像源 Webhook 触发器的名称。​
    URL​
    说明​
    后续在镜像仓库创建 事件通知 时,需要在 目标 URL 填写该值。​
    当前流水线的 Webhook URL,流水线通过该 URL 接收镜像仓库的 Webhook 事件通知。​
    过滤条件​
    配置触发流水线运行的触发动作和触发条件。​
    • 触发动作:选择触发流水线运行的事件,本示例选择 镜像推送。​
    • 触发条件:本示例填写"data":{.*?"repository":"golang-demo-app",当推送golang-demo-app OCI 制品仓库下的镜像时触发流水线。​
    运行时变量​
    配置镜像仓库 Webhook 触发流水线时,动态变量的实际使用值。​
    • 动态变量:本示例添加 第二步 已创建的自定义动态变量,动态设置转换后镜像的版本号。单击 添加,选择 tag。​
    • 占位符:填写 CR_IMAGE_TAG。​
    ​
  1. 单击 保存,保存流水线配置。​
第五步:配置镜像仓库事件通知​
在镜像仓库 CR 中创建事件通知规则,使原始镜像推送后能向流水线触发器发送 Webhook。​
  1. 在顶部导航栏,选择目标地域。​
  1. 在左侧导航栏单击 事件通知。​
  1. 在 事件通知 页面,单击 创建通知规则。​
  1. 配置规则参数。本文仅介绍和本场景相关的参数,完整的参数说明参见 创建镜像推送通知规则。​
  • ​​​
  • ​
    配置项​
    说明​
    生效范围​
    ​
    生效层级​
    选择 OCI 制品仓库。​
    实例​
    选择待转换镜像所属的实例。​
    命名空间​
    选择待转换镜像所属的命名空间。​
    OCI 制品仓库​
    选择待转换镜像所属的 OCI 制品仓库。本示例为 golang-demo-app。​
    制品类型​
    选择 镜像。​
    版本​
    本示例选择 正则匹配,填入 ^(.{1,5}|.*[^s]|.*[^u]s|.*[^d]us|.*[^y]dus|.*[^n]ydus|.*[^-]nydus)$,排除以 -nydus 结尾的版本号。​
    通知规则​
    ​
    规则状态​
    点击 启用,启用通知规则。​
    通知方式​
    选择支持 HTTP(s)。​
    目标 URL​
    事件触发后访问的 URL 地址,通知的信息将传递到该地址中。本示例填写 第四步 中持续交付触发器的 Webhook 的地址。​
    自定义 Header​
    支持根据业务场景,自定义目标 URL 的 Header。​
    ​
结果验证​
完成上述配置后,推送一个原始镜像即可触发整条自动转换链路。​
  1. 通过以下命令推送原始镜像至镜像仓库,推送镜像的操作详情参见 推送和拉取制品。​
  • ​
    docker push ****-cn-beijing.cr.volces.com/****/golang-demo-app:0.0.2​
    ​
  • ​​​
  1. 在镜像仓库的目标 OCI 制品仓库(本示例为 golang-demo-app)的镜像列表中,存在 -nydus 后缀的加速镜像副本即操作成功。​​​
最近更新时间:2026.06.30 16:25:09
这个页面对您有帮助吗?
有用
有用
无用
无用