Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Uso de ImageCache para acelerar la creación de instancias de contenedor elásticas

Última actualización: Sep 17, 2026

Alibaba Cloud ofrece la función de caché de imágenes para Elastic Container Instance mediante la CustomResourceDefinition (CRD) ImageCache. Esta función reduce el tiempo necesario para descargar imágenes de contenedor desde repositorios remotos cada vez que se crea una instancia de contenedor elástica en clústeres de Kubernetes. En este tema se describe cómo crear y usar un ImageCache para agilizar la creación de instancias de contenedor elásticas.

Qué es un ImageCache

Un ImageCache representa un recurso definido por una instancia de contenedor elástica que almacena en caché las capas de las imágenes de contenedor para agilizar la creación de instancias. Cada ImageCache corresponde a una caché de imágenes. Cuando usted crea una instancia de contenedor elástica, ImageCache permite que esta utilice capas almacenadas previamente en lugar de descargarlas todas. Esta función reduce el tiempo necesario para iniciar el contenedor, sobre todo con imágenes grandes o en condiciones de red inestables. Para obtener más información, consulte Image cache overview.

Nota

El tiempo que se ahorra depende de la cantidad y el tamaño de las imágenes, así como de las condiciones de la red.

Facturación

Durante la creación y el uso de ImageCache pueden generarse cargos por los recursos asociados. Para obtener más información, consulte Image caches billing.

Procedimiento

Paso 1: Comprobar la disponibilidad

De forma predeterminada, los clústeres ACK Serverless tienen implementada la CRD ImageCache. Para comprobar si su clúster admite ImageCache, ejecute el siguiente comando:

kubectl get crd/imagecaches.eci.alibabacloud.com
  • Si se devuelve información sobre imagecaches.eci.alibabacloud.com, su clúster admite ImageCache.

  • Si se devuelve un mensaje de error, actualice el componente ACK Virtual Node a la versión más reciente para habilitar ImageCache.

Paso 2: Crear un ImageCache

Existen dos formas de crear un ImageCache: automática o manual. Para optimizar costos, se recomienda usar la creación automática de ImageCache, salvo que necesite acelerar de inmediato las nuevas instancias de contenedor elásticas. Para conocer las diferencias entre los ImageCaches creados de forma manual y automática, consulte Creation methods.

Método

Descripción

Creación automática

Puede habilitar la coincidencia automática de ImageCaches al crear una instancia de contenedor elástica. Si no hay ningún ImageCache que coincida, el sistema crea uno automáticamente mientras genera la instancia de contenedor elástica. Después, esta caché sirve para acelerar futuras creaciones de instancias de contenedor elásticas con la misma imagen.

Creación manual

Si va a crear una instancia de contenedor elástica por primera vez y desea que el proceso sea lo más rápido posible, cree manualmente un ImageCache por adelantado mediante una plantilla YAML. Para obtener más información, consulte Manage ImageCaches y Image cache annotations.

Nota
  • Salvo cuando necesite acelerar la primera creación de una instancia de contenedor elástica, se recomienda utilizar ImageCaches creados automáticamente para ahorrar costos.

  • Para conocer las diferencias entre los ImageCaches creados de forma manual y automática, consulte Methods to create an ImageCache.

Paso 3: Usar un ImageCache para crear una instancia de contenedor elástica

Cuando cree una instancia de contenedor elástica a partir de un ImageCache, puede buscar coincidencias automáticas de un ImageCache o bien especificar uno manualmente.

Se recomienda habilitar la coincidencia automática y configurar el parámetro imc-perfect-match para aplicar criterios más estrictos. Si configura tanto imc-perfect-match como imc-match-count-request, el primero tiene prioridad. Si configura la coincidencia automática y la especificación manual al mismo tiempo, esta última prevalece. Para obtener más información, consulte Image cache overview.

A continuación se describen las anotaciones principales:

Método de coincidencia

Anotación

Ejemplo

Descripción

Coincidencia automática

k8s.aliyun.com/eci-auto-imc

"true"

Indica si se buscan automáticamente cachés de imágenes coincidentes. El valor predeterminado es true, lo que significa que el sistema selecciona de forma automática el ImageCache más adecuado para crear la instancia de contenedor elástica según la política de coincidencias. El sistema elige el ImageCache con base en el siguiente orden: grado de coincidencia de la imagen, tamaño de la imagen y momento de creación de la imagen.

Si ningún ImageCache coincide exactamente, el sistema crea uno automáticamente durante la generación de la instancia de contenedor elástica.

k8s.aliyun.com/imc-perfect-match

"true"

Indica si todas las imágenes de contenedor del pod deben coincidir por completo con el ImageCache. Valor predeterminado: false.

k8s.aliyun.com/imc-match-count-request

"2"

Especifica la cantidad de imágenes de contenedor del pod que deben coincidir exactamente con el ImageCache.

Especificación manual

k8s.aliyun.com/eci-imc-id

imc-2zebxkiifuyzzlhl****

Especifica una caché de imágenes para crear el pod.

Ejemplos de configuración

ImageCache es un recurso a nivel de clúster que se puede utilizar en distintos namespaces. Al configurar las anotaciones, tenga en cuenta lo siguiente:

  • Las anotaciones deben agregarse en la sección metadata del archivo de configuración del pod. Por ejemplo, en un Deployment, agréguelas bajo spec.template.metadata.

  • Estas anotaciones solo surten efecto cuando se crea una instancia de contenedor elástica. Agregar o modificar anotaciones en una instancia existente no tendrá ningún efecto.

  • La función Elastic Container Instance Effect de eci-profile agrega de forma dinámica anotaciones relacionadas con ImageCache a los pods según condiciones predefinidas. Si estas anotaciones no existen en el archivo YAML del pod, configure eci-profile; el sistema las aplicará automáticamente a todos los pods que coincidan sin necesidad de actualizar manualmente cada archivo YAML. Para obtener más información, consulte Configure eci-profile to automatically use an image cache.

Importante
  • Coincidencia de imágenes: especifique las imágenes junto con los ImageCaches para mejorar el grado de coincidencia y aprovechar al máximo la caché.

  • Política de descarga: establezca ImagePullPolicy en IfNotPresent para evitar descargar las mismas capas de imagen.

Ejemplo 1: Coincidencia automática de un ImageCache

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/eci-imc-id: imc-2ze5tm5gehgtiiga****  # ID of the target ImageCache
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80
        imagePullPolicy: IfNotPresent                          # Prevents re-downloading cached image layers

Ejemplo 2: Especificar un ImageCache

Importante
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/eci-auto-imc: "true"          # Enable automatic cache matching
        k8s.aliyun.com/imc-perfect-match: "true"     # All images must be in the cache
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80
        imagePullPolicy: IfNotPresent                 # Prevents re-downloading cached image layers
      - name: busybox
        image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
        command: ["sleep"]
        args: ["999999"]
        imagePullPolicy: IfNotPresent                 # Prevents re-downloading cached image layers