容器镜像服务使用规范

AKS 集成了 阿里云容器镜像服务(ACR),为您提供更好的镜像仓库服务,便于您管理私有镜像。本文介绍 ACR 使用过程中的一些实践经验与规范建议,帮助您更好地结合使用 AKS 与 ACR。

规格选择

容器镜像服务 ACR 提供了 默认实例版企业版 两种规格,二者在功能规格、应用场景等均有所不同。详见 规格说明

  • 默认实例版 提供基础的容器镜像服务,包括安全的应用镜像托管能力、精确的镜像安全扫描功能、稳定的国内外镜像构建服务以及便捷的镜像授权功能,从而方便用户进行镜像全生命周期管理。

  • 企业版 是企业级云原生应用制品管理平台,提供容器镜像、Helm Chart,符合 OCI 规范制品的生命周期管理;支持大规模、多地域、多场景下应用制品的高效分发;与容器服务 ACK 无缝集成,帮助企业降低交付复杂度。

因此,建议根据业务实际需求,如需要的命名空间、仓库数量等,选择合适的服务规格。推荐选择 容器镜像服务 ACR 企业版

资源定义与划分

命名空间

ACR 通过配置命名空间,有效管理各空间下的仓库集合,包括仓库权限和仓库属性。在创建命名空间时,建议按照如下标准:

  • 将一个公司或组织的仓库集中在一个命名空间下面。

  • 可使用公司名称、团队或组织名称作为命名空间,如 aliyun、alibaba、misaka-team 等。

  • 由于命名空间数量是有配额限制的,建议根据团队、组织或者系统的数量,合理划分命名空间。如果需要的命名空间较多,建议购买多个企业版实例。

仓库

镜像命名建议按照如下蚂蚁的统一规范,且一个应用一个镜像库。

  • 镜像命名必须以 reg.docker.alibaba-inc.com/namespace/ 作为前缀。

  • 镜像命名建议:reg.docker.alibaba-inc.com/${yournamespace}/alios7u2-{appName}:[{envName}-]{YYYY-mm-dd}-{seq}[.{git commit id}]。其中,线上正式镜像 {envName} 留空。

此外,镜像变更后,需修改镜像 ID,然后 push 至镜像中心,不允许相同镜像 ID 重复上传不同镜像。

仓库权限配置

默认情况下,主账号对自己的资源拥有完整的操作权限。主账号可以为不同的子账号授予访问镜像仓库资源的不同权限。权限配置建议如下:

  1. 除云管理员之外,其他成员没有命名空间的操作权限。

  2. 命名空间管理员具备仓库级别的全部权限,命名空间普通成员具备只读和 push/pull 镜像权限。

  3. 非应用/仓库所属团队人员,但是公司的相关开发和运维人员,只具备只读权限,即 AliyunContainerRegistryReadOnlyAccess

  4. 可根据命名空间、仓库名或前缀进行资源筛选,继而给各 RAM 子账号授权各资源的不同权限。

更多权限配置细节,可参考 配置仓库的 RAM 访问控制