上传镜像到ACR企业版后自动制作镜像缓存

更新时间:
复制为 MD 格式

基于阿里云事件总线EventBridge,可以实现上传镜像到ACR企业版实例后,在ACS中使用新上传镜像自动制作镜像缓存,加速镜像拉取过程,从而提升Pod的启动速度。

适用范围

步骤一:配置ACR实例

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

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

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

  4. 在企业版实例管理页面左侧导航栏中选择仓库管理 > 访问控制。然后在专有网络页签下,单击添加专有网络,添加已创建的VPC。

  5. 单击实例管理 > 事件通知,单击创建规则事件类型选择cr:Artifact:PushCompleted,然后按需选择生效范围

    事件通知的具体配置不影响后续操作,配置完成即可。

步骤二:创建RAM权限策略

  1. 使用RAM管理员登录RAM控制台

  2. 在左侧导航栏,选择权限管理 > 权限策略

  3. 权限策略页面,单击创建权限策略

  4. 创建权限策略页面,单击脚本编辑页签。

  5. 输入权限策略内容,然后单击确定

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "acc:CreateImageCache",
          "Resource": "*"
        },
        {
          "Action": "ram:CreateServiceLinkedRole",
          "Resource": "*",
          "Effect": "Allow",
          "Condition": {
            "StringEquals": {
              "ram:ServiceName": "imc.acc.aliyuncs.com"
            }
          }
        }
      ]
    }
  6. 输入策略名称备注,然后单击确定

步骤三:配置事件总线

  1. 登录事件总线EventBridge控制台
  2. 在顶部菜单栏,选择与VPC相同的地域。

  3. 在左侧导航栏,单击事件总线
  4. default事件总线的操作列单击事件规则,在规则列表中可以看到步骤一:配置ACR实例中创建的事件规则。在该规则的操作列单击编辑事件目标,然后单击添加目标,填入下方选项:

    选项

    事件源

    acr.cr

    事件类型

    cr:Artifact:PushCompleted

    服务类型

    acs.openapi.acc

    接口类型

    CreateImageCache

    RegionId

    选择模版

    • 变量

      {
        "InstanceName":"$.data.InstanceName",
        "RegionId":"$.data.RegionId",
        "RepoName": "$.data.RepoName",
        "RepoNamespaceName": "$.data.RepoNamespaceName",
        "Tag": "$.data.Tag"
      }
    • 模板

      ${RegionId}

    ImageCacheName

    选择模版

    • 变量

      {
        "InstanceName":"$.data.InstanceName",
        "RegionId":"$.data.RegionId",
        "RepoName": "$.data.RepoName",
        "RepoNamespaceName": "$.data.RepoNamespaceName",
        "Tag": "$.data.Tag"
      }
    • 模板

      ${RepoNamespaceName}-${RepoName}-${Tag}

    Images

    选择模版

    • 变量

      {
        "InstanceName":"$.data.InstanceName",
        "RegionId":"$.data.RegionId",
        "RepoName": "$.data.RepoName",
        "RepoNamespaceName": "$.data.RepoNamespaceName",
        "Tag": "$.data.Tag"
      }
    • 模板

      ${InstanceName}-registry-vpc.${RegionId}.cr.aliyuncs.com/${RepoNamespaceName}/${RepoName}:${Tag}

    NetworkConfig

    • VSwitchIds:填入提前准备的交换机ID。

    • SecurityGroupId:填入提前准备的安全组ID。

    角色配置

    单击授权创建新角色,然后使用RAM管理员登录RAM控制台,为新建角色(AliyunEventBridgeOpenApi-******)授予步骤二中创建的权限。

    重试和死信

    选择指数衰减重试允许容错

步骤四:效果验证

ACR企业版实例推送镜像,然后登录容器计算服务控制台,在左侧导航栏选择镜像缓存,查看镜像缓存是否自动制作完成。

相关文档

事件总线EventBridge的计费规则,请参见计费概述