免密拉取ACR企业版镜像

对于与ECI同一账号下的ACR镜像,如果ACR实例是个人版或者使用标准域名的企业版,则默认免密;对于使用自定义域名的ACR企业版镜像,需要指定ACR实例来配置免密,以便简化配置,加速镜像拉取。本文为您介绍如何免密拉取使用自定义域名的ACR企业版镜像。

前提条件

请确保您已完成以下操作:

  • 已开通容器镜像服务ACR服务,并完成了相关的RAM角色授权。

  • 已创建ACR企业版实例并完成镜像仓库相关配置。具体操作,请参见使用企业版实例推送拉取镜像

背景信息

阿里云容器镜像服务ACR分为个人版和企业版。其中,企业版是企业级云原生应用制品管理平台,提供容器镜像、Helm Chart ,以及符合OCI规范制品的生命周期管理,能够与容器服务Kubernetes版无缝集成,适用于业务大规模部署场景,帮助企业降低交付复杂度。更多信息,请参见容器镜像服务ACR简介

对于ACR镜像,默认的免密支持情况如下:

  • 与ECI同一账号下的ACR个人版镜像自动免密。

  • 与ECI同一账号下的ACR企业版镜像,如果使用标准域名(格式为****-registry.[Region].cr.aliyuncs.com),则自动免密。

  • 与ECI同一账号下的ACR企业版镜像,如果使用自定义域名,则无法自动免密,需要指定ACR实例来配置免密。

  • 非ECI同一账号下的ACR镜像不支持免密,需要下发镜像仓库认证密钥。

说明

非ACR镜像(例如Docker镜像)不支持免密。

本文主要介绍对于使用自定义域名的ACR企业版镜像,如何配置免密。

配置ACR企业版免密访问

新创建的ACR企业版实例默认处于非连接状态,需要配置相应的ACL策略后,才可以通过公网或者专有网络访问该实例。

  • 公网访问

    开启公网访问入口后,可以直接通过公网域名地址来访问ACR企业版实例的镜像(可跨域)。具体操作,请参见配置公网的访问控制

    ACR2
  • 专有网络访问

    使用专有网络VPC访问ACR企业版实例,需要开启相关授权。具体操作,请参见配置专有网络的访问控制

    ACR1

配置完成后,如果ACR企业版实例使用标准域名,则无需其他配置,即可免密拉取该实例中的镜像。如果ACR实例使用自定义域名,则需要指定ACR实例来配置免密。

指定ACR实例来配置免密

对于使用自定义域名的ACR企业版镜像,需要指定ACR实例来配置免密。指定ACR企业版实例拉取镜像时,请注意以下事项:

  • 仅支持指定单个ACR实例。如果您有多个ACR实例,且实例中存在多种不同的镜像,建议您将镜像直接归属到同一个ACR实例。

  • ACR企业版实例支持跨地域使用,即指定的ACR企业版实例与Pod的所属地域可以不同。指定时,需在ACR实例ID前加上所属地域,例如cn-beijing:cri-j36zhodptmyq****

拉取ACR镜像创建ECI Pod

创建ECI Pod时,您可以在Pod metadata中添加Annotation(k8s.aliyun.com/acr-instance-id)来指定ACR实例。配置示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    app: test
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-test
      labels:
        app: nginx
        alibabacloud.com/eci: "true" 
      annotations:
        k8s.aliyun.com/acr-instance-id: "cri-j36zhodptmyq****"      #指定ACR企业版实例ID
    spec:
      containers:
      - name: nginx
        image: test****-registry.example.com/eci_test/nginx:1.0   #指定使用自定义域名的ACR企业版镜像
        ports:
        - containerPort: 80

拉取ACR镜像创建ImageCache

创建ImageCache时,您可以在ImageCache的metadata中添加Annotation(k8s.aliyun.com/acr-instance-ids)来指定ACR实例。配置示例如下:

apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
  name: imagecache-sample
  annotations:
    k8s.aliyun.com/acr-instance-ids: "cri-j36zhodptmyq****" #指定ACR企业版实例ID
spec:
  images: 
  - test****-registry.example.com/eci_test/nginx:1.0   #指定使用自定义域名的ACR企业版镜像
  imagePullSecrets:
  - default:secret1
  - default:secret2
  - kube-system:secret3
  imageCacheSize:
   25
  retentionDays:
   7

阿里云首页 弹性容器实例 相关技术圈