通过容器镜像服务的云原生应用交付链功能,您可以自由组合镜像构建、镜像扫描、镜像全球同步和镜像分发等任务,提供全链路可观测、可追踪、安全防护能力。本文将介绍如何创建交付链,从而实现一次提交,全球分发、扫描和部署。

前提条件

已创建镜像仓库,详情参见仓库构建

步骤一:配置交付链的基本信息

为新创建交付链配置基本信息。

  1. 登录容器镜像服务控制台,在控制台页面的左上方,选择所需地域。
  2. 在左侧导航栏中,选择企业版实例 > 实例列表
  3. 实例列表页面中,单击所需配置的企业版实例,进入该实例的配置页面。
  4. 在左侧导航栏中,选择云原生交付链 > 交付链
  5. 在交付链的配置页面中,单击左上角的创建交付链
  6. 创建交付链对话框中,输入以下信息:
    • 交付链名称
    • 交付链描述(可选)
    • 交付链作用范围:分别选择命名空间以及该命名空间下的镜像仓库。
  7. 单击下一步,进入创建交付链的导览页面。
  8. 单击镜像构建图标,在下方的任务配置页面,添加或修改镜像构建规则。

步骤二:配置交付链的镜像构建

配置交付链的镜像构建规则之后,镜像仓库将根据所配置的构建规则自动构建镜像。

  1. 在创建交付链的导览页面,单击镜像构建图标。
  2. 任务配置区域,添加或修改镜像构建规则。
    • 添加规则:单击添加规则,弹出添加构建规则对话框。
    • 修改规则:单击对应规则所在行的修改,弹出修改构建规则对话框。
    构建规则的参数说明如下所示:
    • 类型:设置源代码仓库的类型,可以是 Branch 或 Tag。
    • 选择Branch或Tag:设置构建的代码分支。
    • Dockerfile目录:设置 Dockerfile 文件所在的目录。
      说明 这里的目录是指相对目录,以代码分支的根目录为父目录。
    • Dockerfile文件名:设置 Dockerfile 文件名,默认为 Dockerfile。
    • 镜像版本:设置镜像 Tag,例如 latest。
  3. 单击确认,完成规则的添加或修改。
    任务配置区域,可以查看已添加或修改的构建规则。

步骤三:配置交付链的安全扫描

通过配置交付链的安全扫描,可以确保镜像同步和分发的安全性。

  1. 在创建交付链的导览页面,单击安全扫描图标。
  2. 节点配置区域,设置阻断规则。
    • 阻断:需要设置由漏洞等级漏洞个数所构成的阻断规则。

      当满足阻断规则时,镜像版本将停止向后执行;否则,继续执行。

    • 不阻断:所有的镜像版本在不阻断的情况下,都会继续向后执行。

步骤四:配置交付链的镜像同步规则

通过配置同步规则,可以在企业版实例之间根据规则自动同步更新的镜像版本。

  1. 在创建交付链的导览页面,单击触发同步图标。
  2. 任务配置区域,单击新建规则
  3. 新建规则对话框中,输入规则名称,并配置目标实例。
    • 如果已存在目标实例,请选择所在地域和该地域下所需的企业版实例。
    • 如果不存在目标实例,单击新建实例。详情参见创建企业版实例
    说明 在不开启公网的场景下,支持镜像的跨域自动同步。
  4. 单击下一步进入同步信息的配置页面。
  5. 配置源实例的同步信息。
    1. 选择同步级别
      • 命名空间:表示同步源实例特定命名空间下的所有镜像。
      • 仓库:表示只同步特定镜像仓库下的镜像。
    2. 选择需要同步的源实例的命名空间。
    3. 可选: 如果同步级别设置为仓库,需要选择特定的源仓库。
    4. 输入仓库版本过滤的正则规则,默认为所有版本。
  6. 单击创建同步规则完成同步规则的创建。
    任务配置区域可以查看新创建的同步规则。

步骤五:配置交付链的分发触发器

通过配置分发触发器,可以为部署的应用创建一个重新部署的触发器,从而实现应用的自动部署。

  1. 在创建交付链的导览页面,单击分发触发器图标。
  2. 任务配置区域,单击创建
  3. 创建触发器对话框中,输入触发器名称。
  4. 输入触发器 URL。
  5. 选择触发方式
    • 全部触发:触发器会触发全部的镜像分发。
    • 表达式触发:需要设置正则表达式。当触发器匹配到该表达式时,才触发镜像的分发。
    • Tag触发:需要选择镜像 Tag。当触发器匹配到所选镜像 Tag 时,才会触发镜像的分发。
  6. 单击确认完成触发器的创建。
    任务配置区域可以查看新创建的分发触发器。
  7. 创建交付链对话框中,单击确定,完成交付链的创建。

执行结果

在交付链的配置页面中,可以查看到新创建的交付链。

后续步骤

当代码仓库提交更新之后,在交付链实例的页面可以查看到各个步骤的运行状态和结果,最终可以在 Kubernetes 集群查看到镜像被成功更新。