Use o recurso de aceleração P2P em um cluster ACK para acelerar o pull de imagens e reduzir o tempo de implantação de aplicações. Este tópico descreve como instalar o conjunto de aceleração P2P em um cluster ACK.
Escopo
Aplica-se apenas às ACR Enterprise Edition instances da Advanced Edition.
O cluster é um ACK managed cluster or ACK dedicated cluster ou um ACK Serverless Pro cluster e executa Kubernetes 1.32 ou anterior.
Confirme se a VPC do seu cluster ACK está configurada na instância do ACR Enterprise Edition. Para mais informações, consulte Configure access control for a VPC.
Limitações de uso de imagens
Se você usar imagens muito grandes, como as de modelos de linguagem de grande porte, atenda a um dos seguintes requisitos para garantir a eficiência do pull de imagens via P2P: os nós no pool de nós devem ter um disco de dados do tipo AutoPL ou pelo menos 8 GB de memória livre para cache de dados P2P.
Etapa 1: Obter o ID da instância do Container Registry (ACR) Enterprise Edition e ative o módulo P2P
Faça login no console do Container Registry.
Na barra de navegação superior, selecione uma região.
No painel de navegação à esquerda, clique em Instances.
Na página Instances, clique na instância Enterprise Edition que deseja gerenciar.
-
Na página Overview, anote o Instance ID. Em seguida, na seção Component Settings, ative a opção P2P acceleration e clique em Confirm na caixa de diálogo de confirmação.
AvisoAntes de desativar o agente de aceleração P2P, interrompa o uso do recurso P2P e desinstale o agente de todos os clusters relevantes. Para reativar o recurso, reinstale o agente.
Etapa 2: Instale o agente de aceleração P2P (incluindo a concessão das permissões necessárias)
Conceda permissão ao agente de aceleração P2P para acessar sua instância do ACR Enterprise Edition usando um dos três métodos abaixo.
-
Usar uma função RAM worker para autorização e instalação.
Limitações: A instância do Container Registry (ACR) Enterprise Edition e o cluster ACK devem pertencer à mesma conta Alibaba Cloud.
Usar o par AccessKey de um usuário RAM para autorização e instalação.
-
Usar RAM Roles for Service Accounts (RRSA) para autorização e instalação.
Limitações: Este método é suportado apenas em clusters gerenciados ACK que executam Kubernetes 1.22 ou posterior.
Usar uma função RAM worker para autorização e instalação
Faça login no console ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Cluster Information.
-
Na página Cluster Information, clique na aba Basic Information. Na seção Cluster Resources, copie o nome da função RAM worker e clique no link para abrir o console do Resource Access Management (RAM) e conceder permissões à função.
-
Crie a seguinte política personalizada. Para mais informações, consulte Create a custom policy.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:GetInstanceVpcEndpoint", "cr:ListInstanceEndpoint" ], "Resource": "*" } ] } Na página Role, localize a função RAM worker e anexe a política personalizada criada. Para mais informações, consulte Grant permissions to a RAM role.
-
Faça login no console ACK. No painel de navegação à esquerda, clique em .
Na página App Catalog, insira ack-acr-acceleration-p2p na caixa de pesquisa, localize o componente e clique em seu cartão.
Na página de detalhes do componente, clique em Quick Deployment no canto superior direito.
No painel Create, selecione um Cluster e um Namespace, especifique um nome de release e clique em Next.
-
No painel Parameters, selecione a versão mais recente do chart e defina o parâmetro acrInstances com o ID da instância anotado na Etapa 1. Se houver múltiplas instâncias, separe os IDs por vírgula (,).
# ID of ACR EE instances, support multi, e.g. "cri-xxx,cri-yyy" acrInstances: "" # Region of the ACR EE instance. The default value is the region of the cluster. # You must set this parameter if the cluster and the instance are in different regions, or if you access the instance from a self-managed cluster in a data center. region: "" # The VPC that is connected to the VPC network of the ACR EE instance. The default value is the VPC of the cluster. # You must set this parameter if the cluster and the instance are in different regions, or if you access the instance from a self-managed cluster in a data center through a VPC network. vpcId: "" p2p: # Port of the P2P agent in the host network. port: 65001NotaPor padrão, o agente usa a porta 65001 nos nós. Caso ocorra conflito de porta, altere o número conforme necessário.
Se o cluster ACK e a instância do ACR Enterprise Edition estiverem na mesma região, deixe os parâmetros
regionevpcIdvazios. Se estiverem em regiões diferentes, defina o parâmetroregioncom a região da instância do ACR Enterprise Edition e o parâmetrovpcIdcom o ID da VPC associada à instância.-
Para imagens muito grandes, como as de modelos de linguagem de grande porte, ajuste o modo de cache de dados P2P conforme a configuração do seu nó:
Modo de cache baseado em disco de dados (padrão): Garanta que o tipo de disco de dados do nó seja AutoPL. Defina
p2p.v2.cache.modecomodisk.Modo de cache baseado em memória: Garanta que o nó tenha pelo menos 8 GB de memória livre e defina
p2p.v2.cache.modecomomemory.
Usar o par AccessKey de um usuário RAM para autorização e instalação
Crie um usuário do Resource Access Management (RAM). Para mais informações, consulte Create a RAM user.
-
Conceda as seguintes permissões ao usuário RAM. Em seguida, create an AccessKey pair e anote o AccessKey ID e o AccessKey Secret.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:GetInstanceVpcEndpoint", "cr:ListInstanceEndpoint" ], "Resource": "*" } ] } Faça login no console ACK. No painel de navegação à esquerda, clique em .
Na página App Catalog, insira ack-acr-acceleration-p2p na caixa de pesquisa, localize o componente e clique em seu cartão.
Na página de detalhes do componente, clique em Quick Deployment no canto superior direito.
No painel Create, selecione um Cluster e um Namespace, especifique um nome de release e clique em Next.
-
No painel Parameters, selecione a versão mais recente do chart. Defina o parâmetro acrInstances com o ID da instância anotado na Etapa 1. Se houver múltiplas instâncias, separe os IDs por vírgula (,). Em seguida, insira o AccessKey ID e o AccessKey Secret anotados.
# ID of ACR EE instances, support multi, e.g. "cri-xxx,cri-yyy" acrInstances: "" # You must specify the following parameters if your Kubernetes cluster is self-managed in a data center. accessKey: "" accessKeySecret: "" # Region of the ACR EE instance. The default value is the region of the cluster. # You must set this parameter if the cluster and the instance are in different regions, or if you access the instance from a self-managed cluster in a data center. region: "" # The VPC that is connected to the VPC network of the ACR EE instance. The default value is the VPC of the cluster. # You must set this parameter if the cluster and the instance are in different regions, or if you access the instance from a self-managed cluster in a data center through a VPC network. vpcId: "" p2p: # Port of the P2P agent in the host network. port: 65001NotaPor padrão, o agente usa a porta 65001 nos nós. Caso ocorra conflito de porta, altere o número conforme necessário.
Se o cluster ACK e a instância do ACR Enterprise Edition estiverem na mesma região, deixe os parâmetros
regionevpcIdvazios. Se estiverem em regiões diferentes, defina o parâmetroregioncom a região da instância do ACR Enterprise Edition e o parâmetrovpcIdcom o ID da VPC associada à instância.-
Para imagens muito grandes, como as de modelos de linguagem de grande porte, ajuste o modo de cache de dados P2P conforme a configuração do seu nó:
Modo de cache baseado em disco de dados (padrão): Garanta que o tipo de disco de dados do nó seja AutoPL. Defina
p2p.v2.cache.modecomodisk.Modo de cache baseado em memória: Garanta que o nó tenha pelo menos 8 GB de memória livre e defina
p2p.v2.cache.modecomomemory.
Usar RRSA para autorização e instalação
O recurso RAM Roles for Service Accounts (RRSA) oferece controle de permissões refinado no nível de Pod.
O recurso RRSA é suportado apenas em clusters que executam Kubernetes 1.22 ou posterior.
Para usar RRSA, atualize o agente para a versão 0.3.6 ou posterior.
Ative o RRSA na ordem correta: primeiro para o cluster, depois para o agente de aceleração P2P. Se essas etapas forem realizadas na ordem errada, reinstale o agente para que o RRSA tenha efeito.
Ative o RRSA para o seu cluster. Para mais informações, consulte Configure a RAM role for a service account by using RRSA to enforce fine-grained permission management for Pods.
-
Configure as permissões de acesso aos recursos do ACR para a função RAM.
-
Cenário em que a instância do ACR Enterprise Edition e o cluster ACK pertencem à mesma conta Alibaba Cloud.
Se a Conta A for proprietária tanto do cluster ACK quanto da instância do ACR Enterprise Edition, crie uma função RAM na Conta A e anexe a seguinte política de permissão. Para mais informações, consulte Create a RAM role for a trusted Alibaba Cloud account.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:GetInstanceVpcEndpoint", "cr:ListInstanceEndpoint" ], "Resource": "*" } ] }NotaSubstitua <oidc_issuer_url> pela URL do provedor OIDC do seu cluster. Essa URL encontra-se na aba Basic Information da página de detalhes do cluster no console ACK.
Substitua <oidc_provider_arn> pelo ARN do provedor OIDC do seu cluster. Esse ARN encontra-se na aba Basic Information da página de detalhes do cluster no console ACK.
{ "Statement": [ { "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "oidc:aud": [ "sts.aliyuncs.com" ], "oidc:iss": "<oidc_issuer_url>", "oidc:sub": [ "system:serviceaccount:aliyun-acr-acceleration:ack-acr-acceleration-p2p-job-sa", "system:serviceaccount:aliyun-acr-acceleration:ack-acr-acceleration-p2p-sa" ] } }, "Effect": "Allow", "Principal": { "Federated": [ "<oidc_provider_arn>" ] } } ], "Version": "1" } -
Cenário em que a instância do ACR Enterprise Edition e o cluster ACK pertencem a contas Alibaba Cloud diferentes.
Considere que a Conta A possui o cluster ACK e a Conta B possui a instância do ACR Enterprise Edition. É necessário conceder ao cluster ACK na Conta A permissão para acessar os recursos do ACR na Conta B.
Na Conta A, crie uma função RAM. Para mais informações, consulte Create a RAM role for a trusted Alibaba Cloud account. Anexe a política AliyunSTSAssumeRoleAccess para conceder à função permissão para assumir outras funções. Em seguida, modifique sua política de confiança.
NotaSubstitua <oidc_issuer_url> pela URL do provedor OIDC do seu cluster. Essa URL encontra-se na aba Basic Information da página de detalhes do cluster no console ACK.
Substitua <oidc_provider_arn> pelo ARN do provedor OIDC do seu cluster. Esse ARN encontra-se na aba Basic Information da página de detalhes do cluster no console ACK.
{ "Statement": [ { "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "oidc:aud": [ "sts.aliyuncs.com" ], "oidc:iss": "<oidc_issuer_url>", "oidc:sub": [ "system:serviceaccount:aliyun-acr-acceleration:ack-acr-acceleration-p2p-job-sa", "system:serviceaccount:aliyun-acr-acceleration:ack-acr-acceleration-p2p-sa" ] } }, "Effect": "Allow", "Principal": { "Federated": [ "<oidc_provider_arn>" ] } } ], "Version": "1" }Na Conta B, crie uma função RAM com permissões relacionadas ao ACR. Na Trust Policy, adicione o ARN da função da Conta A. Anexe a seguinte política de permissão à função na Conta B.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:GetInstanceVpcEndpoint", "cr:ListInstanceEndpoint" ], "Resource": "*" } ] }NotaDefina a Maximum Session Duration desta função RAM com um valor entre 3.600 e 43.200 segundos. O parâmetro expireDuration, que será configurado posteriormente, não deve exceder esse valor. Para obter melhores resultados, defina expireDuration com o mesmo valor da Maximum Session Duration.
-
Faça login no console ACK. No painel de navegação à esquerda, clique em .
Na página App Catalog, insira ack-acr-acceleration-p2p na caixa de pesquisa, localize o componente e clique em seu cartão.
Na página de detalhes do componente, clique em Quick Deployment no canto superior direito.
No painel Create, selecione um Cluster e um Namespace, especifique um nome de release e clique em Next.
-
No painel Parameters, selecione a versão mais recente do chart. Defina o parâmetro acrInstances com o ID da instância anotado na Etapa 1. Se houver múltiplas instâncias, separe os IDs por vírgula (,). Configure os itens do RRSA conforme descrito na tabela a seguir.
Parâmetro
Descrição
Valor
rrsa.enable
Define se o RRSA deve ser ativado.
true
rrsa.rrsaRoleARN
ARN da função RAM criada na Conta A.
acs:ram::aaarrsa.rrsaOIDCProviderRoleARN
ARN do provedor OIDC exibido na página de informações do cluster no console ACK da Conta A.
acs:ram::bbbrrsa.assumeRoleARN
ARN da função RAM criada na Conta B. Este parâmetro não é necessário em cenários de mesma conta.
acs:ram::cccrrsa.expireDuration
Duração da sessão para a função criada na Conta B. Determina o período de validade das credenciais temporárias geradas pelo agente. Este parâmetro não é necessário em cenários de mesma conta.
ImportanteO valor de expireDuration não deve exceder a Maximum Session Duration da função criada na Conta B.
O valor padrão é 3600. O valor deve estar entre 3.600 e 43.200. Unidade: segundos. Defina também a Maximum Session Duration da função criada na Conta B como 43.200 segundos.
Para informações sobre outros parâmetros, consulte Appendix.
NotaPor padrão, o agente usa a porta 65001 nos nós. Caso ocorra conflito de porta, altere o número conforme necessário.
Se o cluster ACK e a instância do ACR Enterprise Edition estiverem na mesma região, deixe os parâmetros
regionevpcIdvazios. Se estiverem em regiões diferentes, defina o parâmetroregioncom a região da instância do ACR Enterprise Edition e o parâmetrovpcIdcom o ID da VPC associada à instância.-
Para imagens muito grandes, como as de modelos de linguagem de grande porte, ajuste o modo de cache de dados P2P conforme a configuração do seu nó:
Modo de cache baseado em disco de dados (padrão): Garanta que o tipo de disco de dados do nó seja AutoPL. Defina
p2p.v2.cache.modecomodisk.Modo de cache baseado em memória: Garanta que o nó tenha pelo menos 8 GB de memória livre e defina
p2p.v2.cache.modecomomemory.
# ID of ACR EE instances, support multi, e.g. "cri-xxx,cri-yyy" acrInstances: "" rrsa: enable: true rrsaRoleARN: "" rrsaOIDCProviderRoleARN: "" assumeRoleARN: "" expireDuration: 3600 # Region of the ACR EE instance. The default value is the region of the cluster. # You must set this parameter if the cluster and the instance are in different regions, or if you access the instance from a self-managed cluster in a data center. region: "" # The VPC that is connected to the VPC network of the ACR EE instance. The default value is the VPC of the cluster. # You must set this parameter if the cluster and the instance are in different regions, or if you access the instance from a self-managed cluster in a data center through a VPC network. vpcId: "" p2p: # Port of the P2P agent in the host network. port: 65001
Apêndice
A tabela a seguir descreve alguns dos parâmetros do componente ack-acr-acceleration-p2p.
|
Parâmetros de cache de arquivo |
Padrão (modo disco) |
Padrão (modo memória) |
Descrição |
|
blocksize |
256 |
256 |
Tamanho de um único bloco de dados solicitado do Object Storage Service (OSS) de origem. |
|
capacity |
4294967296 |
0 |
Tamanho do cache em disco. |
|
optionBlockSize |
67108864 |
8589934592 |
Tamanho do cache de memória:
|
|
memoryCacheCapacityGB |
1 |
8 |
|
|
aio |
0 |
0 |
Define se o libaio deve ser ativado. Este parâmetro não tem efeito no modo de cache baseado em memória.
|
|
DeployConfig |
|||
|
proxyFsParallels |
128 |
Número de requisições simultâneas que o agente P2P consegue processar. |
|
|
AgentConfig |
|||
|
connectTimeout (s) |
5 |
Tempo limite para o agente P2P estabelecer conexão com um par upstream. |
|
|
transferTimeout (s) |
15 |
Tempo limite para transferências de dados. Se nenhum dado for recebido dentro deste período, a transferência expira. |
|