Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Acelere a inicialização de contêineres com carregamento de imagens sob demanda

Última atualização: Jun 27, 2026

As imagens de contêiner são armazenadas como camadas compactadas. Quando um contêiner é iniciado, o runtime baixa e descompacta todas as camadas antes da execução, mesmo que, na maioria dos cenários de negócios, precise ler apenas uma parte dos dados da imagem. Para imagens grandes, esse download desnecessário domina o tempo de inicialização.

O ACK oferece suporte ao carregamento sob demanda de imagens de contêiner usando o Data Accelerator for Disaggregated Infrastructure (DADI). Em vez de baixar a imagem completa antecipadamente, o DADI carrega apenas os dados necessários ao contêiner e os descompacta em tempo real.

Para uma imagem do NodeBB de 1,34 GB no Docker Hub, o carregamento sob demanda reduz a fase de pull da imagem de 36 para 4 segundos e o tempo total de inicialização da aplicação de 38 para 9 segundos.

Importante

Os tempos de pull de imagem acima servem apenas como referência. O desempenho real depende do tamanho da imagem e das condições da rede.

Limites

Restrição

Requisito

Tipo de cluster

Apenas clusters gerenciados pelo ACK.

Versão do cluster

1.26 ou posterior. Consulte Atualizar manualmente um cluster.

Runtime do nó

containerd 1.6.34 ou posterior. Consulte Atualizar um node pool.

Modo DADI

Apenas modo completo. O modo somente índice não tem suporte.

Comportamento importante: ativar ou desativar a Aceleração de Imagem de Contêiner em um node pool afeta apenas os nós adicionados posteriormente. Para aplicar a alteração aos nós existentes, remova-os do node pool e adicione-os novamente. Consulte Remover um nó e Adicionar nós existentes.

Pré-requisitos

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

  • Um cluster gerenciado pelo ACK executando Kubernetes 1.26 ou posterior, com containerd 1.6.34 ou posterior como runtime do nó

  • Acesso a um repositório de imagens: ACR Enterprise Edition (Standard ou Premium) ou registro autogerenciado

  • Acesso ao cluster via kubectl

Etapa 1: Obter uma imagem acelerada

Imagens aceleradas usam o formato DADI. Converta uma imagem existente com o recurso de conversão integrado do ACR Enterprise Edition (recomendado) ou com a ferramenta open source DADI.

Opção 1: Usar o ACR Enterprise Edition (recomendado)

O ACR Enterprise Edition (Standard ou Premium) converte imagens automaticamente no nível do repositório. Ao enviar uma imagem, o ACR cria uma cópia acelerada sem modificar a original. A imagem acelerada usa o mesmo namespace e nome de repositório, com _accelerated anexado à tag (por exemplo, latest torna-se latest_accelerated).

Para mais informações e limites, consulte Carregamento sob demanda de imagens de contêiner.

  1. Faça logon no Console do Container Registry e selecione uma região.

  2. No painel de navegação à esquerda, clique em Instances. Na página Instances, clique no nome da instância Enterprise Edition.

  3. No painel de navegação à esquerda, selecione Repository > Repositories.

  4. Clique no nome do repositório. Na página Details, clique em Edit no canto superior esquerdo.

  5. Na caixa de diálogo Modify Settings, ative Accelerated Image, selecione Full Mode e clique em Confirm. Imagens enviadas após essa alteração acionam automaticamente uma tarefa de conversão. Para receber uma notificação quando a conversão for concluída, configure notificações de eventos com a expressão _accelerated$. Consulte Notificações de Eventos.

Opção 2: Usar a ferramenta open source DADI

Use o conversor de imagens DADI para converter uma imagem manualmente.

  1. Instale o snapshotter overlaybd.

    # Download the package for your instance architecture.
    wget https://github.com/containerd/accelerated-container-image/releases/download/v1.2.3/overlaybd-snapshotter-1.2.3-20241016090917.0c2f057.x86_64.rpm
    rpm -ivh overlaybd-snapshotter-1.2.3-20241016090917.0c2f057.x86_64.rpm
  2. Instale a camada de dispositivo de bloco overlaybd.

    # Download the package for your instance architecture.
    wget https://github.com/containerd/overlaybd/releases/download/v1.0.13/overlaybd-1.0.13-20240821.a117098.el8.x86_64.rpm
    rpm -ivh overlaybd-1.0.13-20240821.a117098.el8.x86_64.rpm
  3. Converta a imagem. O exemplo a seguir converte uma imagem em um repositório ACR. Para um registro autogerenciado, atualize o endereço da imagem e as credenciais conforme necessário.

    Espaço reservado

    Descrição

    user:password

    Credenciais do registro

    xxxxx-registry.cn-hangzhou.cr.aliyuncs.com/default/redis

    Endereço do repositório da imagem de origem

    latest

    Tag da imagem de origem (-i)

    latest_obd_new

    Tag da imagem de saída (-o)

    /opt/overlaybd/snapshotter/convertor \
      -u user:password \
      -r xxxxx-registry.cn-hangzhou.cr.aliyuncs.com/default/redis \
      -i latest \
      -o latest_obd_new

    Substitua os seguintes espaços reservados:

Etapa 2: Ativar a Aceleração de Imagem de Contêiner em um node pool

Novos node pools e node pools existentes oferecem suporte à Aceleração de Imagem de Contêiner. Os passos variam ligeiramente.

Ativar para um novo node pool

  1. Faça logon 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 node pool, expanda Advanced Options e ative Container Image Acceleration.

Ativar para um node pool existente

Importante

Alterações na Aceleração de Imagem de Contêiner entram em vigor apenas para nós adicionados ao pool após a mudança. 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 logon 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 node pool 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 node pool. A coluna Status exibe Updating durante a atualização e Active após a conclusão.

Etapa 3: Implantar uma aplicação com uma imagem acelerada

Configurar credenciais de pull de imagem

Instale o componente aliyun-acr-acceleration-suite para que o DADI possa autenticar-se no registro de imagens ao carregar dados sob demanda.

  1. Faça logon 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, clique em Add-ons.

  3. Na página Add-ons, localize aliyun-acr-acceleration-suite na aba Others e clique em Install.

Após a instalação, configure as credenciais de pull com base no tipo de registro:

ACR Enterprise Edition: Instale o plugin password-free para injetar automaticamente credenciais de acesso em workloads elegíveis. Isso elimina o gerenciamento manual de Secrets. Consulte Fazer pull de imagens ACR sem secret.

Registro autogerenciado: Crie um Secret do tipo kubernetes.io/dockerconfigjson e aplique um rótulo para que o pacote de aceleração possa utilizá-lo.

# Create the Secret.
kubectl create secret docker-registry <SecretName> \
  --docker-server=<RegistryVpcDomain> \
  --docker-username=<UserName> \
  --docker-password=<Password>

# Label the Secret for DADI.
kubectl label secrets <SecretName> images.alibabacloud.com/accelerated="true"
Nota

Se sua aplicação não precisar usar um secret para fazer pull de uma imagem privada, pule esta etapa.

Criar a aplicação

Use um seletor de nó para agendar pods em nós com aceleração de imagem ativada. O rótulo alibabacloud.com/image-accelerate-enabled: "true" é aplicado automaticamente aos nós com aceleração habilitada.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      nodeSelector:
        alibabacloud.com/image-accelerate-enabled: "true" # Schedule to acceleration-enabled nodes only.
      containers:
        - name: test
          image: xxxxx-registry.cn-hangzhou.cr.aliyuncs.com/default/redis:latest_obd_new # Replace with your accelerated image address.
          command: ["sleep", "3600"]

Aplique o manifesto:

kubectl apply -f deployment.yaml

Próximos passos

Referências