基于阿里云事件总线EventBridge,可以实现上传镜像到ACR企业版实例后,在ACS中使用新上传镜像自动制作镜像缓存,加速镜像拉取过程,从而提升Pod的启动速度。
适用范围
已创建专有网络与交换机并配置安全组。
步骤一:配置ACR实例
登录容器镜像服务控制台。
在左侧导航栏,选择实例列表。
在实例列表页面单击目标企业版实例。
在企业版实例管理页面左侧导航栏中选择。然后在专有网络页签下,单击添加专有网络,添加已创建的VPC。
单击,单击创建规则,事件类型选择cr:Artifact:PushCompleted,然后按需选择生效范围。
事件通知的具体配置不影响后续操作,配置完成即可。
步骤二:创建RAM权限策略
使用RAM管理员登录RAM控制台。
在左侧导航栏,选择权限管理 > 权限策略。
在权限策略页面,单击创建权限策略。
在创建权限策略页面,单击脚本编辑页签。
输入权限策略内容,然后单击确定。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "acc:CreateImageCache", "Resource": "*" }, { "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "imc.acc.aliyuncs.com" } } } ] }输入策略名称和备注,然后单击确定。
步骤三:配置事件总线
- 登录事件总线EventBridge控制台。
在顶部菜单栏,选择与VPC相同的地域。
- 在左侧导航栏,单击事件总线。
在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的计费规则,请参见计费概述。