Todos los productos
Search
Centro de documentos

Elastic Container Instance:Uso de ImageCache para acelerar la creación de pods

Última actualización: Sep 05, 2026

Descargar imágenes de contenedor desde un registro durante la creación del pod aumenta la latencia, especialmente con imágenes grandes o en entornos con acceso lento a la red. ImageCache es una función de Elastic Container Instance (ECI) expuesta como CustomResourceDefinition (CRD) de Kubernetes. Agregue anotaciones a los metadatos del pod para que ECI asocie una caché de imágenes preexistente al crearlo; así, las capas de la imagen ya estarán en disco y no será necesario descargarlas del registro.

Las anotaciones solo surten efecto al crear un pod. Agregar o modificar anotaciones en un pod existente no tiene ningún efecto.

Funcionamiento

  1. Cree un recurso ImageCache que contenga las imágenes que usan sus pods.

  2. Agregue anotaciones a spec.template.metadata en el manifiesto de su pod o Deployment.

  3. Cuando ECI crea el pod, compara la anotación con los recursos ImageCache disponibles y monta las capas almacenadas en caché, lo que omite la descarga de la imagen.

ImageCache es un recurso de clúster. Los pods de cualquier namespace dentro del clúster pueden usarlo.

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

  • Un clúster de Kubernetes con ECI habilitado

  • Como mínimo un recurso ImageCache en estado Ready (obligatorio al fijar con eci-imc-id)

Anotaciones

Agregue las siguientes anotaciones en la sección metadata de la especificación de su pod. Para Deployments, colóquelas en spec.template.metadata.

Anotación

Valor de ejemplo

Predeterminado

Descripción

k8s.aliyun.com/eci-auto-imc

"true"

"true"

Habilita la asociación automática de caché de imágenes. ECI selecciona la mejor coincidencia según el grado de coincidencia de la imagen, su tamaño y la fecha de creación. Si ninguna caché coincide, ECI crea una automáticamente.

k8s.aliyun.com/imc-perfect-match

"true"

"false"

Requiere que todas las imágenes de contenedor del pod coincidan con la caché de imágenes.

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

"2"

—

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

k8s.aliyun.com/eci-imc-id

imc-2zebxkiifuyzzlhl****

—

Fija el pod a una caché de imágenes específica.

Reglas de prioridad

Al establecer varias anotaciones, se aplica la siguiente precedencia:

  • eci-imc-id (fijar a una caché específica) anula la asociación automática (eci-auto-imc).

  • En la asociación automática, imc-perfect-match tiene prioridad sobre imc-match-count-request si ambas están configuradas. Se recomienda usar imc-perfect-match.

Ejemplos de configuración

Para obtener mejores resultados en ambos ejemplos:

  • Use imágenes ya incluidas en el recurso ImageCache para maximizar la tasa de aciertos de la caché.

  • Establezca imagePullPolicy: IfNotPresent en cada contenedor para evitar descargar capas que ya se encuentran en la caché.

Ejemplo 1: Asociación automática de caché de imágenes (recomendado)

Use eci-auto-imc para permitir que ECI seleccione automáticamente la mejor caché disponible. Agregue imc-perfect-match: "true" si todas las imágenes del pod deben estar presentes en la caché.

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

Ejemplo 2: Fijar a una caché de imágenes específica

Use eci-imc-id para dirigirse a un recurso ImageCache específico. La caché indicada debe estar en estado Ready antes de aplicar el manifiesto; de lo contrario, la creación del pod fallará.

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

Pasos siguientes