Todos os produtos
Search
Central de documentação

Elastic Container Instance:Configurar o eci-profile para uso automático de cache de imagem

Última atualização: Sep 12, 2026

O recurso ECI Effect no eci-profile permite definir seletores que injetam automaticamente anotações relacionadas ao ImageCache em pods correspondentes. Quando um pod atende às condições de rótulo de um seletor, o sistema adiciona as anotações especificadas sem intervenção manual. Isso acelera a criação do pod sem alterar suas especificações individuais.

Nota: Para mais informações sobre o eci-profile, consulte Configure an eci-profile .

Pré-requisitos

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

  • Acesso a um cluster Kubernetes com ECI habilitado

  • Permissão para editar o ConfigMap eci-profile no namespace kube-system

  • kubectl configurado para se comunicar com o cluster

Como funciona

O eci-profile usa um webhook de mutação (vk-webhook) para interceptar solicitações de criação de pods. Durante a criação, o webhook verifica os rótulos do pod e do namespace em relação aos seletores definidos no eci-profile. Se houver correspondência, o webhook injeta as anotações adequadas no pod e habilita automaticamente a aceleração por cache de imagem.

Anotações de ImageCache

As anotações a seguir controlam o uso de caches de imagem durante a criação de pods.

Anotação

Valor de exemplo

Descrição

k8s.aliyun.com/eci-auto-imc

"true"

Habilita a correspondência automática de cache de imagem. Quando definido como "true", o sistema seleciona o cache mais adequado com base no grau de correspondência das imagens, no tamanho da imagem e na data de criação. Caso não exista correspondência exata, o sistema cria um novo cache durante a criação do pod. Padrão: "true".

k8s.aliyun.com/imc-perfect-match

"true"

Exige que todas as imagens de contêiner do pod correspondam exatamente ao cache de imagem. Padrão: "false".

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

"2"

Define a quantidade de imagens de contêiner no pod que devem corresponder exatamente ao cache de imagem.

k8s.aliyun.com/eci-imc-id

imc-2zebxkiifuyzzlhl****

Vincula o pod a um cache de imagem específico por ID.

Campos do seletor

Cada seletor no array selectors do eci-profile contém os seguintes campos:

Campo

Obrigatório

Descrição

name

Sim

Nome exclusivo do seletor.

namespaceSelector

Não

Filtra pods com base nos rótulos do namespace. Se omitido, todos os namespaces são elegíveis.

objectSelector

Não

Filtra pods com base nos rótulos do pod. Se omitido, todos os pods nos namespaces correspondentes são elegíveis.

effect.annotations

Sim

Anotações a serem injetadas nos pods correspondentes.

Quando vários rótulos são especificados em namespaceSelector.matchLabels ou objectSelector.matchLabels, todos devem corresponder simultaneamente (lógica AND).

Configurar seletores

  1. Abra o ConfigMap do eci-profile para edição:

    kubectl -n kube-system edit cm eci-profile
  2. Adicione os seletores ao campo selectors no formato de array:

    selectors: |
     [
      {
          "name": "demo",
          "namespaceSelector": {
              "matchLabels": {
                  "app": "nginx"
              }
          },
          "objectSelector": {
              "matchLabels": {
                  "type": "test"
              }
          },
          "effect": {
              "annotations": {
                  "k8s.aliyun.com/eci-auto-imc": "true"
              }
          }
      }
     ]
  3. Salve e saia do editor. O Kubernetes aplica as alterações automaticamente.

Verificar a configuração

Execute o comando a seguir para confirmar se os seletores estão ativos:

kubectl get mutatingwebhookconfigurations -o yaml vk-webhook

Se o YAML retornado contiver os seletores configurados, eles estarão em vigor. Caso os seletores não apareçam, verifique se há erros de formatação JSON no campo selectors do ConfigMap.

Exemplo

O exemplo a seguir define dois seletores com estratégias de correspondência distintas.

Edite o ConfigMap do eci-profile:

kubectl -n kube-system edit cm eci-profile

Adicione o conteúdo a seguir ao campo selectors:

[
  ...
  {
    "name": "image-cache-selector-1",
    "objectSelector": {
      "matchLabels": {
        "image-cache": "true"
      }
    },
    "effect": {
      "annotations": {
        "k8s.aliyun.com/eci-imc-id": "imc-uf6ic***************"
      }
    }
  },
  {
    "name": "image-cache-selector-2",
    "namespaceSelector": {
      "matchLabels": {
        "image-cache": "true"
      }
    },
    "effect": {
      "annotations": {
        "k8s.aliyun.com/eci-auto-imc": "true"
      }
    }
  }
]

Funcionamento de cada seletor:

  • image-cache-selector-1: Todo pod com o rótulo image-cache: true recebe automaticamente a anotação k8s.aliyun.com/eci-imc-id: imc-uf6ic*************** e é vinculado ao cache de imagem especificado.

  • image-cache-selector-2: Qualquer pod criado em um namespace com o rótulo image-cache: true recebe automaticamente a anotação k8s.aliyun.com/eci-auto-imc: "true". Isso ativa a correspondência automática de cache de imagem para todos os pods desse namespace.

Próximos passos