Todos os produtos
Search
Central de documentação

Elastic Container Instance:Use an ImageCache to accelerate pod creation

Última atualização: Aug 24, 2026

Baixar imagens de contêiner do registro durante a criação do pod aumenta a latência, especialmente com imagens grandes ou em ambientes com acesso lento à rede. O ImageCache é um recurso do Elastic Container Instance (ECI) exposto como uma CustomResourceDefinition (CRD) do Kubernetes. Adicione annotations aos metadados do pod para que o ECI associe um cache de imagem pré-criado no momento da criação. Assim, as camadas da imagem já estarão disponíveis em disco, sem necessidade de download do registro.

As annotations só entram em vigor na criação do pod. Adicionar ou modificar annotations em um pod existente não surte efeito.

Como funciona

  1. Crie um recurso ImageCache com as imagens que seus pods utilizam.

  2. Adicione annotations à seção spec.template.metadata no manifesto do pod ou Deployment.

  3. Ao criar o pod, o ECI compara a annotation com os recursos ImageCache disponíveis e monta as camadas em cache, ignorando o download da imagem.

O ImageCache é um recurso no nível do cluster. Pods em qualquer namespace do cluster podem utilizá-lo.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um cluster Kubernetes com o ECI ativado

  • Pelo menos um recurso ImageCache no estado Ready (obrigatório ao fixar com eci-imc-id)

Annotations

Adicione as annotations abaixo à seção metadata da especificação do pod. Para Deployments, insira-as em spec.template.metadata.

Annotation

Valor de exemplo

Padrão

Descrição

k8s.aliyun.com/eci-auto-imc

"true"

"true"

Ativa a correspondência automática de cache de imagem. O ECI seleciona a melhor opção com base no grau de correspondência das imagens, no tamanho da imagem e no horário de criação. Se nenhum cache corresponder, o ECI cria um automaticamente.

k8s.aliyun.com/imc-perfect-match

"true"

"false"

Exige que todas as imagens de contêiner no pod correspondam ao cache de imagem.

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

"2"

—

Define quantas imagens de contêiner no pod devem corresponder exatamente ao cache de imagem.

k8s.aliyun.com/eci-imc-id

imc-2zebxkiifuyzzlhl****

—

Fixa o pod a um cache de imagem específico.

Regras de prioridade

Quando várias annotations são definidas, aplica-se a seguinte precedência:

  • A annotation eci-imc-id (fixar a um cache específico) substitui a correspondência automática (eci-auto-imc).

  • Na correspondência automática, imc-perfect-match tem prioridade sobre imc-match-count-request se ambas estiverem configuradas. Prefira imc-perfect-match.

Exemplos de configuração

Para obter os melhores resultados em ambos os exemplos:

  • Use imagens já incluídas no recurso ImageCache para maximizar a taxa de acerto do cache.

  • Defina imagePullPolicy: IfNotPresent em todos os contêineres para evitar o download de camadas já armazenadas em cache.

Exemplo 1: Correspondência automática de cache de imagem (recomendado)

Use eci-auto-imc para permitir que o ECI selecione automaticamente o melhor cache disponível. Adicione imc-perfect-match: "true" se todas as imagens do pod precisarem estar presentes no cache.

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

Exemplo 2: Fixar a um cache de imagem específico

Use eci-imc-id para direcionar um recurso ImageCache específico. O cache indicado deve estar no estado Ready antes da aplicação do manifesto; caso contrário, a criação do pod falhará.

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

Próximos passos