Todos os produtos
Search
Central de documentação

:Credential-free container image pull with a component

Última atualização: Jun 30, 2026

O componente aliyun-acr-credential-helper permite baixar imagens privadas sem senha de instâncias do Container Registry Personal Edition e Enterprise Edition para um cluster Kubernetes autogerenciado. Este tópico descreve como usar o aliyun-acr-credential-helper para baixar uma imagem privada sem senha em dois cenários.

Pré-requisitos

Seu cluster Kubernetes autogerenciado deve estar conectado a um cluster registrado no ACK One.

Notas de uso

O componente aliyun-acr-credential-helper lê a configuração do ConfigMap acr-configuration no namespace kube-system de um cluster ACK e baixa as imagens privadas. Após configurar o componente aliyun-acr-credential-helper, ele gera um Secret no cluster e o associa à service account especificada no ConfigMap acr-configuration. Por padrão, todos os pods que usam essa service account utilizam o Secret gerado para baixar imagens sem senha.

Importante

Ao criar uma service account para implantar aplicações, como Helm charts, aguarde a associação dela ao secret gerado pelo aliyun-acr-credential-helper. Recomendamos usar o recurso webhook para injetar o secret na service account antes de baixar as imagens.

A tabela a seguir descreve as limitações de uso do componente aliyun-acr-credential-helper para baixar imagens privadas sem senha.

Parâmetro

Descrição

Espelhamento

  • É possível baixar imagens privadas das instâncias do Container Registry pertencentes ao usuário RAM atual.

  • Também é permitido baixar imagens privadas entre contas por meio de autorização ou usando o par de AccessKey de outro usuário RAM.

  • O download de imagens privadas funciona em cenários que exigem acesso simultâneo a instâncias do Container Registry Enterprise Edition e do Container Registry Personal Edition.

Versão do cluster e do Kubernetes

  • A versão do Kubernetes do cluster deve ser 1.11.2 ou superior.

  • É possível baixar imagens sem senha em múltiplos namespaces de um mesmo cluster.

Precauções

Item

Precaução

imagePullSecrets

  • Se você especificar imagePullSecret no modelo de um recurso do Kubernetes, como um Deployment, o componente aliyun-acr-credential-helper deixará de funcionar. Para usar o componente, não especifique imagePullSecret.

  • O componente aliyun-acr-credential-helper atualiza o campo imagePullSecrets da service account padrão em todos os namespaces de um cluster ACK e adiciona o novo secret ao arquivo de configuração existente. Essas service accounts são modificadas automaticamente conforme as alterações no campo service-account do ConfigMap acr-configuration no namespace kube-system correspondente.

ServiceAccount

  • Se um recurso do Kubernetes, como um Deployment, usar uma service account personalizada, modifique o parâmetro service-account no arquivo de configuração do componente aliyun-acr-credential-helper. Assim, o componente recebe autorização para baixar imagens usando a service account personalizada.

  • Após criar uma service account no cluster, verifique se o valor do parâmetro imagePullSecrets contém um secret que comece com acr-credential. Em caso afirmativo, a service account está associada ao secret e as aplicações que a utilizam podem baixar imagens por meio dele. No entanto, aplicações que usam essa service account podem falhar ao tentar baixar imagens imediatamente após a criação devido a erros de autenticação.

Região

Verifique se as imagens privadas desejadas residem na mesma região do seu cluster ACK.

Por padrão, só é possível baixar imagens privadas de instâncias do Container Registry localizadas na mesma região do cluster ACK. Para baixar imagens entre regiões diferentes, consulte a seção "Cenário 2: Download de imagens entre regiões" deste tópico.

Formato YAML

Ao modificar o ConfigMap acr-configuration no namespace kube-system, mantenha a mesma indentação do exemplo fornecido neste tópico. Recomendamos colar o conteúdo YAML apresentado aqui diretamente no editor, substituir os valores correspondentes e aplicar a configuração para garantir que o formato do ConfigMap seja válido.

Configure o componente aliyun-acr-credential-helper no cluster autogerenciado

Step 1: Grant RAM permissions to aliyun-acr-credential-helper

Usar onectl

  1. Instale e configure o onectl na sua máquina local. Para mais informações, consulte Gerenciar clusters registrados usando onectl.

  2. Execute o comando a seguir para conceder permissões RAM ao aliyun-acr-credential-helper:

    onectl ram-user grant --addon aliyun-acr-credential-helper

    Saída esperada:

    Ram policy ack-one-registered-cluster-policy-aliyun-acr-credential-helper granted to ram user ack-one-user-ce313528c3 successfully.

Usar o console

Antes de instalar o componente em um cluster externo, defina o par de AccessKey para conceder ao cluster externo as permissões necessárias para acessar recursos da Alibaba Cloud. Antes de definir o par de AccessKey, crie um usuário RAM e conceda a ele as permissões para acessar recursos da Alibaba Cloud.

  1. Criar um usuário RAM.

  2. Criar uma política personalizada. Exemplo:

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "cr:GetAuthorizationToken",
                    "cr:ListInstanceEndpoint",
                    "cr:PullRepository"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            }
        ]
    }
  3. Anexar a política personalizada a um usuário RAM.

  4. Criar um par de AccessKey para o usuário RAM.

    Aviso

    Recomendamos configurar políticas baseadas em par de AccessKey para controle de acesso à rede, limitando as fontes de invocação do AccessKey a ambientes de rede confiáveis para aumentar a segurança.

  5. Use o par de AccessKey para criar um Secret chamado alibaba-addon-secret no cluster registrado.

    O sistema usa automaticamente o par de AccessKey para acessar recursos da nuvem quando você instala o componente aliyun-acr-credential-helper.

    kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=<your access key id>' --from-literal='access-key-secret=<your access key secret>'
    Nota

    Substitua <your access key id> e <your access key secret> pelo par de AccessKey obtido na etapa anterior.

Step 2: Update and configure aliyun-acr-credential-helper

Instale e configure o aliyun-acr-credential-helper antes de usá-lo para baixar imagens sem senha.

Usar onectl

Execute o comando a seguir para instalar o aliyun-acr-credential-helper:

onectl addon install aliyun-acr-credential-helper

Saída esperada:

Addon aliyun-acr-credential-helper, version **** installed.

Se o aliyun-acr-credential-helper já estiver instalado, certifique-se de que esteja na versão mais recente. Execute o comando a seguir para atualizar o aliyun-acr-credential-helper para a versão mais recente:

onectl addon upgrade aliyun-acr-credential-helper

Saída esperada:

Addon aliyun-acr-credential-helper upgraded to version ****.

Usar o console

Se o componente aliyun-acr-credential-helper já estiver instalado, verifique se ele está na versão mais recente. Caso contrário, atualize-o. A atualização não afeta seus serviços. Para mais informações, consulte Gerenciar componentes. Para mais detalhes sobre o componente aliyun-acr-credential-helper, consulte aliyun-acr-credential-helper.

Importante

Após a atualização do componente aliyun-acr-credential-helper para a versão mais recente, a função RAM da qual o componente depende é alterada. O componente fornece o parâmetro tokenMode para permitir que você especifique a função RAM da qual ele depende. Para mais informações sobre os impactos da alteração da função RAM da qual o componente depende, consulte [[Alterações do Produto] Revogar as permissões das quais o aliyun-acr-credential-helper depende](t2292520.dita#task_2292520).

Após a atualização do componente aliyun-acr-credential-helper para a versão mais recente, a função RAM da qual o componente depende é alterada. O componente fornece o parâmetro tokenMode para permitir que você especifique a função RAM da qual ele depende. Para mais informações sobre os impactos da alteração da função RAM da qual o componente depende, consulte [[Alterações do Produto] Revogar as permissões das quais o aliyun-acr-credential-helper depende](t2292520.dita#task_2292520).

  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 seu cluster. No painel de navegação à esquerda, clique em Add-ons.

  3. Na página Add-ons, clique na aba Security, localize aliyun-acr-credential-helper e clique em Install.

  4. Na página Parameters, use o valor padrão auto para o parâmetro tokenMode e clique em OK.

    Após atualizar um cluster gerenciado pelo ACK para a versão mais recente, o componente aliyun-acr-credential-helper passa a oferecer o parâmetro tokenMode. Você pode modificar esse parâmetro após a instalação do componente. Após a modificação, o sistema recria o pod do componente. Clusters antigos mencionados na tabela referem-se àqueles criados antes de 3 de abril de 2023, enquanto clusters novos são aqueles criados em ou após 3 de abril de 2023. A tabela a seguir descreve os valores válidos para o parâmetro tokenMode.

    tokenMode

    Descrição

    auto

    Determina automaticamente se deve usar o modo managedRole, sendo este o valor padrão. O sistema utiliza o modo managedRole para clusters novos e o modo workerRole para clusters antigos.

    managedRole

    Utiliza o modo managedRole.

    workerRole

    Utiliza o modo workerRole.

Cenário 1: Baixar imagens privadas de instâncias do Container Registry Enterprise Edition e Personal Edition

O ACK permite baixar imagens privadas do Container Registry Enterprise Edition e Personal Edition simultaneamente, apenas do Container Registry Enterprise Edition ou apenas do Container Registry Personal Edition. Modifique o acr-configuration ConfigMap de acordo com suas necessidades de negócio. Para mais informações, consulte Configurar um componente. Exemplo:

  • Enterprise Edition

    apiVersion:v1
    kind:ConfigMap
    metadata:
      name:acr-configuration
      namespace:kube-system
      selfLink:/api/v1/namespaces/kube-system/configmaps/acr-configuration
    data:
      acr-api-version:"2018-12-01"
      acr-registry-info:|-
        -instanceId:"cri-xxx" # The default parameter in the console is #-instanceId. You must remove the number sign (#) and configure this parameter. 
        regionId:"cn-hangzhou"
      expiring-threshold:15m
      service-account:default
      watch-namespace:all
  • Personal Edition

    apiVersion:v1
    kind:ConfigMap
    metadata:
      name:acr-configuration
      namespace:kube-system
      selfLink:/api/v1/namespaces/kube-system/configmaps/acr-configuration
    data:
      acr-api-version:"2018-12-01"
      acr-registry-info:|-
        -instanceId:"" # The default parameter in the console is #-instanceId. You must remove the number sign (#) and retain the default value. 
         regionId:"cn-hangzhou"
      expiring-threshold:15m
      service-account:default
      watch-namespace:all

Configure o ConfigMap acr-configuration usando um dos métodos a seguir:

Usar o console

  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 que deseja gerenciar e escolha Configurations > ConfigMaps no painel de navegação à esquerda.

  3. Na parte superior da página ConfigMap, selecione kube-system na lista suspensa Namespace. Em seguida, localize o ConfigMap acr-configuration e configure os parâmetros.

    Se o ConfigMap acr-configuration não existir, crie um ConfigMap. Para mais informações, consulte Criar um ConfigMap. Para saber como atualizar ConfigMaps, consulte Gerenciar ConfigMaps.

    • Clique em Edit na coluna Actions para configurar chaves e valores do ConfigMap.

    • Clique em Edit YAML na coluna Actions para configurar chaves e valores do ConfigMap.

Usar kubectl

  1. Execute o comando a seguir para acessar a página de edição do ConfigMap acr-configuration:

    kubectl edit cm acr-configuration -n kube-system
  2. Configure os parâmetros do ConfigMap acr-configuration conforme suas necessidades.

Cenário 2: Baixar imagens entre regiões

Para baixar imagens de instâncias do Container Registry para um cluster registrado, quando as instâncias do Container Registry e o cluster registrado estão implantados em regiões diferentes, modifique o acr-configuration ConfigMap.

Por exemplo, para baixar imagens de instâncias do Container Registry implantadas nas regiões China (Pequim) e China (Hangzhou) simultaneamente, modifique o ConfigMap acr-configuration conforme o bloco de código a seguir. Para mais informações, consulte Configurar o componente.

data:
    service-account: "default"
    watch-namespace: "all"
    expiring-threshold: "15m"
    notify-email: "**@aliyuncs.com"
    acr-registry-info: |
      - instanceId: ""
        regionId: cn-beijing
      - instanceId: ""
        regionId: cn-hangzhou            

Configure o ConfigMap acr-configuration usando um dos métodos a seguir:

Usar o console

  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 que deseja gerenciar e escolha Configurations > ConfigMaps no painel de navegação à esquerda.

  3. Na parte superior da página ConfigMap, selecione kube-system na lista suspensa Namespace. Em seguida, localize o ConfigMap acr-configuration e configure os parâmetros.

    Se o ConfigMap acr-configuration não existir, crie um ConfigMap. Para mais informações, consulte Criar um ConfigMap. Para saber como atualizar ConfigMaps, consulte Gerenciar ConfigMaps.

    • Clique em Edit na coluna Actions para configurar chaves e valores do ConfigMap.

    • Clique em Edit YAML na coluna Actions para configurar chaves e valores do ConfigMap.

Usar kubectl

  1. Execute o comando a seguir para acessar a página de edição do ConfigMap acr-configuration:

    kubectl edit cm acr-configuration -n kube-system
  2. Configure os parâmetros do ConfigMap acr-configuration conforme suas necessidades.