创建交付链

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

前提条件

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

  1. 登录容器镜像服务控制台

  2. 在顶部菜单栏,选择所需地域。

  3. 在左侧导航栏,选择实例列表

  4. 实例列表页面单击目标企业版实例。

  5. 在企业版实例管理页面左侧导航栏中选择云原生交付链 > 交付链

  6. 交付链列表页面左上角,单击创建交付链

  7. 创建交付链页面基本信息区域,输入以下信息。

    • 交付链名称:设置交付链的名称。

    • (可选)交付链描述:设置交付链的基本描述。

    • 交付链作用范围:分别选择命名空间以及该命名空间下的镜像仓库。

    • 全部生效:开启后当前命名空间下所有仓库均加入交付链,关闭后可指定仓库不加入交付链。

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

如果您选择的镜像仓库是本地仓库,则无法使用交付链的构建功能。

  1. 在交付链的导览区域,单击镜像构建,然后单击添加规则

  2. 构建信息配置向导中设置参数,然后单击下一步

    参数

    说明

    类型

    设置源代码仓库的类型,可以是Branch或Tag。

    Branch/Tag

    选择或者填写Branch/Tag,支持正则规则。当正则规则为release-(?<imageTag>\w*)时,将识别release-v1源代码变更并自动构建版本为v1的镜像(不支持立即构建),更多信息,请参见正则表达式命名捕获组

    说明

    设置正则规则后仅支持系统自动构建,不支持手动立即构建。

    构建上下文目录

    设置Dockerfile文件所在的目录。指的是相对目录,以代码分支的根目录为父目录。

    Dockerfile文件名

    设置Dockerfile文件名,默认为Dockerfile。

  3. 镜像版本配置向导中设置参数,单击保存,然后单击下一步

    说明

    单击新增配置,可以增加镜像版本,最多可以设置3个镜像版本。

    参数

    说明

    镜像版本

    设置镜像Tag,例如latest。支持命名捕获,例如使用Branch/Tag中捕获的内容。

    时间

    推送源代码的东八区(UTC+8)时间,有两种格式可供选择,例如20201015和202010151613。

    说明

    该参数为可选项,当选中该参数后系统仅支持自动构建,不支持手动立即构建。

    Commit ID

    最近一次推送代码的Commit ID,默认取前6位,可以滑动下方的滑块设置位数。

    说明

    该参数为可选项,当选中该参数后系统仅支持自动构建,不支持手动立即构建。

  4. 构建配置配置向导中设置构建参数,然后单击确定

    参数

    说明

    构建架构

    选择构建架构,支持并行构建,最终形成一个镜像版本对应多个架构镜像。

    构建参数

    镜像构建运行时参数,构建参数由区分大小写的键值对组成,您最多可以设置20个构建参数。

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

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

  1. 在交付链的导览区域,单击安全扫描

  2. 节点配置区域,设置阻断规则。

    • 安全引擎:支持选择云安全扫描引擎Trivy扫描引擎

      云安全扫描引擎在扫描出漏洞后,支持一键修复漏洞功能。Trivy扫描引擎不支持一键修复漏洞功能。

      说明

      使用云安全中心镜像扫描功能,您需要购买云安全中心旗舰版。具体操作,请参见购买云安全中心。如果您在控制台上没有看到云安全中心的选项,有可能是您当前地域云安全中心未开服。

    • 是否阻断:

      • 阻断:当满足阻断规则时,交付链将停止执行后续步骤。

        需要设置由漏洞等级漏洞个数所构成的阻断规则,还需要设置是否删除原始镜像,以及是否备份镜像所构成的阻断交付链后的操作。

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

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

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

  1. 在交付链的导览区域,单击触发同步,然后单击新建规则

  2. 新建规则对话框中,输入规则名称,并配置目标实例,然后单击下一步

    • 如果已存在目标实例,请选择所在地域和该地域下所需的企业版实例。

    • 如果不存在目标实例,单击新建实例。更多信息,请参见创建企业版实例

    说明

    在不开启公网的场景下,支持镜像的跨域自动同步。

  3. 同步信息配置向导中,配置源实例的同步信息,然后单击创建同步规则

    参数

    说明

    同步级别

    选择同步级别,支持按照命名空间和仓库进行同步。

    来源地址

    选择命名空间和仓库名称,输入仓库版本过滤的正则规则,默认为所有版本。仅设置同步级别仓库时,需要选择特定的源仓库。

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

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

  1. 在交付链的导览页面,单击分发触发器,然后单击创建

  2. 创建触发器对话框配置参数,然后单击确定

    参数

    说明

    名称

    设置触发器名称。

    触发器URL

    输入在ACK获取的触发器URL。具体步骤,请参见使用容器镜像触发器自动更新应用

    触发方式

    设置触发方式,支持以下3种触发方式:

    • 全部触发:只要镜像版本有更新,就会触发触发器。

    • 表达式触发:基于正则表达式来进行镜像版本的过滤,只有当符合正则表达式的镜像版本才会触发触发器。

    • Tag触发:基于镜像版本列表来进行镜像版本的过滤,只有镜像版本在设置的镜像版本列表中才会触发触发器。

  3. 创建交付链页面左下角单击创建并返回列表

执行结果

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

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