Todos os produtos
Search
Central de documentação

:Uso do recurso de aceleração P2P em clusters ACK Serverless e ACK

Última atualização: Jul 03, 2026

O recurso de aceleração P2P está disponível em clusters ACK Serverless e no Container Service for Kubernetes (ACK) para agilizar o pull de imagens e a implantação de aplicações. Este tópico descreve como utilizar a aceleração P2P em clusters Kubernetes gerenciados, dedicados e serverless do ACK.

Pré-requisitos

  • Uma instância do Container Registry Enterprise Edition já foi criada. Essa instância deve ser da Advanced Edition. Para mais informações, consulte Criar uma instância da Enterprise Edition.

  • Uma Virtual Private Cloud (VPC) está configurada, caso o cluster ACK precise acessar uma instância do Container Registry Enterprise Edition via VPC. Para mais detalhes, veja Configurar controle de acesso à VPC. Se o acesso for pela internet, verifique se ele está ativado e se o endereço IP do cluster foi adicionado à lista de permissões. Consulte Configurar controle de acesso à internet para orientações adicionais.

Etapa 1: Conceder permissões de leitura aos recursos do Container Registry

Para clusters Kubernetes serverless, é necessário conceder permissões de leitura dos recursos do Container Registry ao componente P2P.

Nota

Em clusters Kubernetes gerenciados ou dedicados, essa concessão não é necessária, pois as permissões são atribuídas por padrão.

  1. Crie uma função do RAM.

    Ao criar a função do RAM, defina o parâmetro Role Type como Normal Service Role e selecione o Elastic Compute Service (ECS) como serviço confiável. Para mais informações, consulte Criar uma função do RAM para serviços da Alibaba Cloud.

  2. Conceda permissões à função do RAM.

    Anexe a política AliyunContainerRegistryReadOnlyAccess à função do RAM. Para mais detalhes, veja Gerenciar permissões de uma função do RAM.

Etapa 2: Visualizar o ID da instância do Container Registry Enterprise Edition

  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 Enterprise Edition que deseja gerenciar.

  5. Visualize o ID da instância do Container Registry no canto superior esquerdo da página Overview.

Etapa 3: Instalar o componente P2P

  1. Faça login no Console de Gerenciamento do Container Service.

  2. No painel de navegação à esquerda, escolha Marketplace > Marketplace.

  3. Na página App Catalog, pesquise pelo componente ack-acr-acceleration-p2p. Ao encontrá-lo, clique no cartão correspondente.

  4. Na página exibida, clique em Deploy.

  5. No assistente de Deploy, selecione um cluster e um namespace e clique em Next.

  6. Na etapa Parameters, defina o parâmetro registryInstances com o ID da instância do Container Registry obtido na Etapa 2.

    Caso utilize múltiplas instâncias do Container Registry, separe os IDs por vírgulas (,) ao configurar o parâmetro registryInstances.

    Nota

    Por padrão, o componente P2P utiliza a porta 65001 nos nós. Se essa porta estiver em uso por outro componente, altere-a conforme a necessidade do seu ambiente.

    p2p:
      ...
      # Port of P2P Agent in host network
      port: 65001
    
      # Id of ACR registry instances, support multi, e.g. "cri-xxx,cri-yyy"
      registryInstances: <ACR instance Id>
  7. Opcional:Defina o parâmetro controller.ramRole com o nome da função do RAM criada na Etapa 1.

    Nota

    O parâmetro controller.ramRole é obrigatório apenas para clusters ACK Serverless. Ignore esta etapa para outros tipos de cluster.

    controller:
      ...
      # ACK Serverless cluster setting, in order to accessing ACR OpenAPI(Get*, List*) for ECS
      ramRole: <your ram role name>
  8. Opcional:Para limitar a largura de banda total de upload e download do componente P2P, configure o parâmetro ratelimit. O valor padrão é 512 MB/s, mas você pode ajustá-lo conforme a capacidade dos nós.

    p2p:
      # Total net rate limit (MBytes/s) for uploading and downloading
      ratelimit: "512M"
  9. No painel Deploy, selecione um cluster e clique em Create.

Etapa 4: Ativar a aceleração P2P

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

Nota

O nome do rótulo de aceleração P2P é k8s.aliyun.com/image-accelerate-mode e seu valor é p2p.

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

    Neste exemplo, aplicamos o rótulo a um Deployment. Execute o comando abaixo para editar o 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

    • Via console do ACK

      1. Faça login no Console de Gerenciamento do Container Service.

      2. No painel de navegação à esquerda, clique em Clusters.

      3. Na página Clusters, localize o cluster desejado e clique no nome dele ou em Details na coluna Actions.

      4. No painel de navegação à esquerda, clique em Namespaces and Quotas.

      5. Na página Namespace, encontre o namespace alvo e clique em Edit na coluna Actions.

      6. Na seção Label da caixa de diálogo Edit Namespace, defina Variable Key como k8s.aliyun.com/image-accelerate-mode e Variable Value como p2p. Em seguida, clique em OK.

    • Via kubectl

      kubectl label namespaces <your-namespace> k8s.aliyun.com/image-accelerate-mode=p2p

Verificar a aceleração P2P

Quando a aceleração P2P é ativada para um pod, o componente P2P insere automaticamente informações relevantes no arquivo yaml. Isso inclui anotações específicas, o endereço da imagem acelerada e o Secret necessário para o pull.

Importante

A única diferença entre o Secret usado para puxar a imagem acelerada e o da imagem original reside no domínio do repositório. Caso as credenciais do Secret original estejam inválidas, o pull da imagem acelerada também falhará.

Execute o comando abaixo para inspecionar o yaml do pod:

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

A presença das anotações P2P, do endereço da imagem acelerada e do Secret correspondente no arquivo yaml confirma que a aceleração P2P está ativa.