Todos os produtos
Search
Central de documentação

Container Registry:Carregar imagens de contêiner sob demanda

Última atualização: Jul 05, 2026

Tradicionalmente, executar um contêiner exige baixar e descompactar toda a imagem antes da inicialização. No entanto, muitas vezes apenas uma fração dos dados da imagem é necessária para iniciar o contêiner, o que resulta em tempos de inicialização prolongados. O recurso de carregamento sob demanda do Container Registry Enterprise Edition resolve esse problema ao baixar e descompactar somente os dados essenciais para a inicialização, em vez de processar a imagem inteira. Essa abordagem acelera significativamente a implantação de aplicações e melhora a elasticidade do dimensionamento.

Pré-requisitos

  • Você deve ter um cluster ACK compatível disponível.

    Nota

    É possível usar imagens aceleradas em clusters ACK gerenciados ou dedicados a partir da versão v1.16.9, bem como em clusters ACK Edge, clusters ACK Serverless, clusters ACK Lingjun e clusters do Alibaba Cloud Container Compute Service (ACS) a partir da versão v1.26.3. Ao criar o cluster, o sistema operacional deve ser Alibaba Cloud Linux 2.1903, Alibaba Cloud Linux 3.2104, Alibaba Cloud Linux 3.2104 LTS 64 bit ARM edition, Alibaba Cloud Linux UEFI 2.1903 ou CentOS 7.9.

  • Crie uma instância do Container Registry Enterprise Edition. Para mais informações, consulte Criar uma instância do Container Registry Enterprise Edition.

    Importante

    As edições compatíveis do Container Registry Enterprise Edition variam conforme o modo de aceleração de imagem:

    • Modo full: compatível com as edições Standard ou Advanced.

    • Modo index-only: compatível com as edições Basic, Standard ou Advanced.

  • Configure a VPC do seu cluster ACK ou cluster ACK Serverless na instância do Container Registry Enterprise Edition. Imagens aceleradas só podem ser usadas dentro de uma VPC. Para mais informações, consulte Configurar controle de acesso para uma VPC.

Informações de base

O recurso de carregamento sob demanda do Container Registry Enterprise Edition permite usar imagens aceleradas nas suas implantações. Isso elimina a necessidade de baixar imagens completas e possibilita a descompactação em tempo real, melhorando significativamente a eficiência na distribuição de aplicações e a elasticidade do dimensionamento. O efeito da aceleração depende de fatores como o tamanho da imagem e as condições de rede do repositório. Em um teste, uma aplicação usando uma imagem NodeBB de 1,34 GB do Docker Hub levou 36 segundos para baixar a imagem, com um tempo total de inicialização de 38 segundos. Com uma imagem acelerada, o tempo de download foi reduzido para 4 segundos e o tempo total de inicialização caiu para apenas 9 segundos.

Limitações

  • Se o runtime do seu contêiner for containerd, os repositórios de imagens aceleradas podem usar nomes de domínio personalizados. Devido a limitações do docker, essa funcionalidade não é suportada ao usar o runtime docker. Para mais informações, consulte Usar um nome de domínio personalizado para acessar uma instância do Container Registry Enterprise Edition.

  • O modo index-only não pode ser usado em cenários de Function Compute (FC) ou Serverless App Engine (SAE).

  • Converta manualmente as imagens existentes para imagens aceleradas.

Disponibilidade por região

O recurso de carregamento sob demanda não está disponível nas regiões do Alibaba Finance Cloud e do Alibaba Gov Cloud.

Converter para uma imagem acelerada

Configure um repositório para converter automaticamente as imagens originais enviadas em imagens aceleradas. O tempo de conversão varia conforme o tamanho da imagem. A imagem original não é afetada.

Nota

A imagem acelerada usa o mesmo namespace e nome de repositório da imagem original. O formato da tag é o seguinte:

  • Modo index-only: a tag da imagem acelerada corresponde à tag da imagem original com o sufixo _accelerated. Este modo é suportado apenas pelo runtime containerd. Não é possível excluir a tag da imagem original enquanto a imagem acelerada estiver em uso.

  • Modo full:

    • Uma imagem acelerada com o sufixo _accelerated é compatível com os runtimes docker e containerd.

    • Uma imagem acelerada com o sufixo _containerd_accelerated destina-se exclusivamente ao runtime containerd.

      Enquanto uma imagem com o sufixo _containerd_accelerated estiver em uso, não será possível excluir nem a imagem acelerada nem sua imagem original.

  1. Faça login no console do Container Registry.

  2. Na barra de navegação superior, selecione uma região.

  3. No painel de navegação à esquerda, clique em Instances.

  4. Na página Instances, clique na instância da edição Enterprise que deseja gerenciar.

  5. Na página de detalhes da instância, no painel de navegação à esquerda, escolha Repository > Repositories.

  6. Na página Repositories, clique no nome do repositório desejado ou clique em Manage na coluna Actions. No canto superior esquerdo da página Basic Information, clique em Edit.

  7. Na caixa de diálogo Modify Settings, ative a opção Accelerated Image, selecione um modo e clique em Confirm.

    • Full Mode: oferece uma aceleração significativa para a inicialização de contêineres. O tamanho da imagem acelerada gerada corresponde a aproximadamente 130% do tamanho da imagem original. A geração de uma imagem acelerada a partir de uma imagem original de 1 GB leva cerca de 25 segundos. As camadas de imagem existentes não são regeneradas.

    • Modo index-only: proporciona cerca de 70% do efeito de aceleração do modo full. O tamanho da imagem acelerada equivale a aproximadamente 3% do tamanho da imagem original. A geração de uma imagem acelerada a partir de uma imagem original de 1 GB leva cerca de 3 segundos. Camadas de imagem que já possuem índice criado não são reindexadas.

      Importante

      O modo index-only está em preview público. Recomendamos testá-lo em um ambiente de não produção antes de usá-lo em ambiente de produção.

      Nota
      • O modo index-only aplica-se apenas a imagens compactadas com tar ou tgz. Esse modo não se aplica a imagens compactadas com outros métodos, como zstd.

      • O modo index-only deve ser usado em conjunto com a imagem original, e a imagem original não pode ser excluída. No modo full, a imagem acelerada pode ser usada de forma independente.

      • O runtime docker não oferece suporte ao modo index-only.

    Após configurar a aceleração de imagens, o envio de novas imagens aciona automaticamente tarefas de conversão. Caso deseje receber notificações ao concluir a conversão, configure as notificações de eventos. Por exemplo, defina a expressão como _accelerated$. Para mais informações, consulte Configurar notificações de eventos.

  8. (Opcional) Especifique uma Prefetch File List. Os arquivos listados são pré-carregados quando a imagem acelerada é iniciada. Recomendamos o uso deste recurso quando houver necessidade de leitura de arquivos grandes durante a inicialização do contêiner.

    Nota

    Cada linha deve conter um caminho absoluto para um arquivo. Para diretórios, o caminho deve terminar com uma barra (/).

Instalar o componente de aceleração de imagem

Para iniciar contêineres acelerados, instale o plugin de armazenamento para carregamento sob demanda nos seus nós de trabalho.

  1. Clusters ACK gerenciados e dedicados

    Ativar para um novo pool de nós

    1. Faça login no console do ACK e clique em Clusters no painel de navegação à esquerda.

    2. Clique no nome do cluster. No painel de navegação à esquerda, escolha Nodes > Node Pools.

    3. Ao criar um pool de nós, expanda Advanced Options e ative Container Image Acceleration.

    Ativar para um pool de nós existente

    Importante

    Alterações em Container Image Acceleration entram em vigor apenas para nós adicionados ao pool após a modificação. Nós existentes não são afetados — para aplicar o recurso a nós existentes, remova-os e adicione-os novamente. Consulte Remover um nó e Adicionar nós existentes.

    1. Faça login no console do ACK e clique em Clusters no painel de navegação à esquerda.

    2. Clique no nome do cluster. No painel de navegação à esquerda, escolha Nodes > Node Pools.

    3. Localize o pool de nós e clique em Edit na coluna Actions. Na seção Advanced Options, ative Container Image Acceleration e siga as instruções na tela para atualizar o ConfigMap do pool de nós. A coluna Status exibe Updating durante a atualização e Active após a conclusão.

    Outros tipos de cluster

    Adicione o rótulo de aceleração de imagem alibabacloud.com/image-accelerate-enabled: true aos nós. Essa ação ativa automaticamente o recurso de aceleração de imagem e instala o plugin de armazenamento de imagem durante a inicialização do nó.

    O método para adicionar um rótulo varia conforme o tipo de cluster:

    Tipo de cluster

    Guia de configuração

    Cluster ACK Serverless

    Cluster ACK Edge

    Cluster ACK Lingjun

    Pools de nós Lingjun

    Alibaba Cloud Container Compute Service (ACS)

    Gerenciar rótulos e taints de nós

  2. Instale o componente de aceleração de imagem.

    1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

    2. Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, clique em Add-ons.

    3. Na página Add-ons, localize aliyun-acr-acceleration-suite na seção More e clique em Install.

    4. Na caixa de diálogo Tips, clique em OK.

      • No painel de navegação à esquerda, escolha Workloads > DaemonSets. Na página DaemonSets, visualize os detalhes de instalação do DaemonSet do componente.

      • No painel de navegação à esquerda, escolha Workloads > Deployments. Na página Deployments, visualize os detalhes de instalação do Deployment do componente.

      A instalação do componente é concluída quando todos os seus pods estiverem em execução.

Habilitar imagens aceleradas

  1. Configure as credenciais de acesso ao repositório.

    Aviso

    Configure o segredo de pull de imagem seguindo o princípio do menor privilégio. Conceda apenas as permissões necessárias para baixar as imagens de serviço usadas pelo cluster. Para mais informações, consulte Conceder uma política personalizada a um usuário RAM.

    • Opção 1: usar o componente aliyun-acr-credential-helper.

    • Opção 2: adicionar um rótulo a um segredo de pull de imagem.

      Nota

      Este método é suportado apenas pelo componente aliyun-acr-acceleration-suite na versão 0.2.6 ou posterior.

      Crie um Secret do tipo kubernetes.io/dockerconfigjson e adicione o rótulo images.alibabacloud.com/accelerated: true ao Secret.

      kubectl create secret docker-registry <SecretName> --docker-server=<RegistryVpcDomain> --docker-username=<UserName> --docker-password=<Password>
      kubectl label secrets <SecretName>  images.alibabacloud.com/accelerated="true"
  2. Adicione um rótulo de aceleração de imagem.

    Adicione um rótulo de aceleração de imagem a uma carga de trabalho, como um pod ou Deployment, ou a um namespace inteiro no seu cluster ACK ou cluster ACK Serverless. Ao rotular um namespace, o carregamento sob demanda é ativado para todas as cargas de trabalho elegíveis dentro desse namespace, eliminando a necessidade de modificar o arquivo YAML de cada carga de trabalho individualmente. Escolha o método mais adequado às suas necessidades.

    Nota

    A chave do rótulo é k8s.aliyun.com/image-accelerate-mode e o valor é on-demand.

    • Adicione um rótulo de aceleração de imagem a uma carga de trabalho.

      O exemplo a seguir demonstra como adicionar um rótulo a um pod gerenciado por um Deployment. Execute o comando abaixo para editar o Deployment:

      kubectl edit deployment <DeploymentName> -n <DeploymentNamespace>

      No arquivo YAML do Deployment, adicione o rótulo k8s.aliyun.com/image-accelerate-mode: on-demand.

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: nginx-deployment
        labels:
          app: nginx
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: nginx
        template:
          metadata:
            labels:
              app: nginx
              # enable on-demand mode
              k8s.aliyun.com/image-accelerate-mode: on-demand
          spec:
            containers:
             # your ACR instacne image
             - image: test-registry-vpc.cn-hangzhou.cr.aliyuncs.com/test/nginx:latest
               name: test
               command: ["sleep", "3600"]
    • Adicione um rótulo de aceleração de imagem a um namespace.

      • Adicione um rótulo de aceleração de imagem pelo console.

        1. Faça login no console do ACK e, na barra de navegação à esquerda, selecione Clusters.

        2. Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Namespaces and Quotas.

        3. Na página Namespace, localize o namespace desejado e clique em Edit na coluna Actions.

        4. Na caixa de diálogo Edit Namespace, defina a Variable Key da Tag como k8s.aliyun.com/image-accelerate-mode e o Variable Value da Tag como on-demand, e então clique em Confirm.

      • Adicione um rótulo de aceleração de imagem via linha de comando.

    kubectl label namespaces <YOUR-NAMESPACE> k8s.aliyun.com/image-accelerate-mode=on-demand

    Após adicionar o rótulo de aceleração e converter uma imagem original em uma imagem acelerada, o componente de aceleração substitui automaticamente o endereço da imagem original pelo endereço da imagem acelerada e adiciona um nodeSelector para agendar pods em nós acelerados durante a criação ou atualização de pods dentro do namespace.