Todos os produtos
Search
Central de documentação

:Uso do recurso de aceleração P2P em clusters locais e em nuvens de terceiros

Última atualização: Jul 03, 2026

O recurso de aceleração P2P pode ser utilizado em clusters locais e em nuvens de terceiros para acelerar o pull de imagens e reduzir o tempo de implantação de aplicações. Este tópico descreve como usar a aceleração P2P nesses ambientes.

Pré-requisitos

  • Uma instância do Container Registry Enterprise Edition deve estar criada, sendo necessária a edição standard ou advanced. Para mais informações, consulte Criar uma instância Enterprise Edition.

  • A instância do Container Registry Enterprise Edition precisa estar configurada para permitir acesso via Internet a partir de um cluster local ou de nuvem de terceiros, com a lista de permissões devidamente definida. Para mais detalhes, veja Configurar controle de acesso à Internet.

  • Execute as operações abaixo no ambiente onde os comandos serão rodados:

    • Instale o Helm. Consulte Helm para instruções.

    • Instale o cliente kubectl e utilize-o para acessar o cluster.

Procedimento

  1. Execute os comandos a seguir para instalar o componente P2P usando o Helm:

    export ACR_INSTANCE_REGION="<region of acr instance >"
    export ACR_INSTANCE_ID="<id of acr instance >"
    export ALIYUN_AK="<aliyun access key>"
    export ALIYUN_SK="<aliyun access key secret >"
    export P2P_CHART="https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/app/charts-incubator/ack-acr-acceleration-p2p-0.2.3.tgz"
    
    helm install ack-acr-acceleration-p2p $P2P_CHART -n aliyun-acr-acceleration --create-namespace \
      --set region=$ACR_INSTANCE_REGION \
      --set accessKey=$ALIYUN_AK \
      --set accessKeySecret=$ALIYUN_SK \
      --set p2p.registryInstances=$ACR_INSTANCE_ID \
      --set pullImageInternet=true \
      --set p2p.plusMode.enable=true

    Durante a instalação, adicione os parâmetros abaixo conforme sua necessidade:

    # The retention period of the data cached by the registry-mirror component. The default retention period is 24 hours. You can change the value based on the disk capacity of nodes. 
    --set p2p.plusMode.cacheTTL=<custom time>
    
    # The path to which the data is cached by the registry-mirror component on the host. 
    # If this parameter is not specified, the cache will be lost when the registry-mirror container restarts. 
    --set p2p.plusMode.cacheHostPath=<host path>
    
    # The transfer acceleration feature of Object Storage Service (OSS) is enabled during the pull from origin over the Internet. This feature is applicable to scenarios where the Internet is unstable. For example, you can enable this feature when images are pulled across regions over the Internet. 
    # Before the configuration, make sure that the transfer acceleration feature is enabled in the OSS console. 
    --set p2p.plusMode.ossInternetAccelerate=true
    
    # A value of source indicates that images are downloaded from the registry-mirror component or a registry in the cloud. In this case, the scheduler component is not deployed to your cluster. 
    --set p2p.plusMode.downloadPattern=source
    
    # The scheduler and registry-mirror components are deployed on a specified node.
    # Before the configuration, you must add the following label to the node: k8s.aliyun.com/p2p-plus-node=true.
    --set p2p.plusMode.nodeSelectorEnable=true
  2. Ative a aceleração P2P.

    Adicione o rótulo de aceleração P2P a workloads como pods e Deployments para habilitar o recurso nesses itens. Alternativamente, aplique o rótulo diretamente em um namespace do cluster. Dessa forma, todos os workloads elegíveis dentro desse namespace terão a aceleração ativada automaticamente, sem necessidade de editar arquivos YAML individuais. Escolha o método mais adequado ao seu cenário de negócio.

    Nota

    O nome do rótulo de aceleração P2P é

    k8s.aliyun.com/image-accelerate-mode

    e o valor é

    p2p

    .

    • Adicionar o rótulo de aceleração P2P a um workload

      Neste exemplo, o rótulo será aplicado a um Deployment. Execute o comando abaixo para editar o arquivo YAML do Deployment:

      kubectl edit deploy <Deployment name>

      Inclua o rótulo

      k8s.aliyun.com/image-accelerate-mode: p2p

      no arquivo YAML do Deployment.

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

      Execute o comando a seguir para aplicar o rótulo de aceleração P2P em um namespace:

      kubectl label namespaces <your-namespace> k8s.aliyun.com/image-accelerate-mode=p2p
  3. Verifique a aceleração P2P.

    Quando a aceleração P2P é ativada para um pod, o componente P2P insere automaticamente informações relevantes no arquivo YAML dele. Isso inclui anotações relacionadas ao P2P, o endereço da imagem acelerada e o Secret necessário para realizar o pull dessa imagem.

    Importante
    • Caso o arquivo YAML original do pod não especifique uma imagem proveniente de uma instância do Container Registry Enterprise Edition, o componente P2P não adicionará as informações mencionadas. O mesmo ocorre se não houver um Secret configurado para pull de imagens do Container Registry Enterprise Edition no modo padrão.

    • O Secret usado para pull da imagem acelerada por P2P difere do Secret da imagem original apenas no domínio do repositório. As demais configurações permanecem idênticas. Se as credenciais do usuário estiverem inválidas no Secret da imagem original, o pull da imagem acelerada também falhará.

    Visualize o arquivo YAML do pod executando o comando abaixo:

    kubectl get po <Pod name> -oyaml

    Saída esperada:

    apiVersion: v1
    kind: Pod
    metadata:
      annotations:
        # inject p2p-annotations automatically
        k8s.aliyun.com/image-accelerate-mode: p2p
        k8s.aliyun.com/p2p-config: '...'
    spec:
      containers:
       # inject image to p2p endpoint
       - image: test-registry-vpc.distributed.cn-hangzhou.cr.aliyuncs.com:65001/docker-builder/nginx:latest
      imagePullSecrets:
      - name: test-registry
      # inject image pull secret for p2p endpoint
      - name: acr-credential-test-registry-p2p

    Se o arquivo YAML contiver as anotações P2P, o endereço da imagem acelerada e o Secret correspondente, a aceleração P2P está ativa.

  4. Opcional:Execute o comando abaixo para ajustar os parâmetros do componente P2P conforme necessário:

    helm upgrade ack-acr-acceleration-p2p $P2P_CHART -n aliyun-acr-acceleration \
      --set p2p.plusMode.cacheTTL=72h
  5. Opcional:Para desinstalar o componente P2P, execute o seguinte comando:

    helm uninstall ack-acr-acceleration-p2p -n aliyun-acr-acceleration