Verifique a conexão com o registro de contêiner
Este artigo faz parte de uma série. Comece com essa visão geral.
Para implantar com êxito aplicativos em contêineres em seu cluster do AKS (Serviço de Kubernetes do Azure), é essencial verificar a conectividade entre o cluster e o registro de contêiner. Esta etapa garante que os nós de trabalho tenham as permissões necessárias para extrair as imagens de contêiner necessárias do Registro.
Identificar sintomas
Quando o kubelet executado em um nó de agente cria os contêineres para um pod, um ou mais contêineres podem acabar no estado de espera devido ao erro ImagePullBackOff
. ImagePullBackoff é uma mensagem de erro comum no Kubernetes que indica uma falha ao extrair a imagem de contêiner necessária de um registro público ou privado. Vários fatores podem causar esse erro, incluindo problemas de conectividade de rede, um nome ou marca de imagem incorretos, permissões insuficientes ou credenciais ausentes.
A BackOff
parte do status significa que o Kubernetes tenta continuamente puxar a imagem com um atraso crescente entre cada tentativa subsequente. O atraso aumenta gradualmente até atingir um limite predeterminado, que normalmente é definido como 300 segundos (5 minutos) no Kubernetes.
É importante verificar novamente o registro e o nome da imagem para obter precisão. Além disso, verifique se o cluster AKS tem as permissões necessárias para extrair imagens do registro de contêiner apropriado.
Atribuições de função
Quando você anexa um registro de contêiner a um cluster AKS existente, a função AcrPull é atribuída automaticamente sobre o registro à identidade gerenciada do Microsoft Entra associada aos pools de agentes no cluster AKS. Para obter mais informações, consulte Autenticar-se em um registro de contêiner do AKS.
Execute o seguinte comando para recuperar a identidade gerenciada kubelet de um cluster Kubernetes e suas atribuições de função atuais:
# Get the kubelet managed identity.
ASSIGNEE=$(az aks show -g $RESOURCE_GROUP -n $NAME --query identityProfile.kubeletidentity.clientId -o tsv)
az role assignment list --assignee $ASSIGNEE --all -o table
Execute o comando a seguir para atribuir a função AcrPull
à identidade gerenciada kubelet:
AZURE_CONTAINER_REGISTRY_ID=$(az acr show --name <container-registry-name> --query id --output tsv)
az role assignment create --assignee $ASSIGNEE --scope $AZURE_CONTAINER_REGISTRY_ID --role acrpull
Solucionar problemas do Registro de Contêiner
As seções a seguir fornecem guias que você pode consultar se encontrar problemas de rede, entrada ou desempenho com um registro de contêiner do Azure.
Solucionar problemas de rede
Se você encontrar problemas relacionados ao acesso a um registro de contêiner do Azure em uma rede virtual ou atrás de um firewall ou servidor proxy, considere as seguintes soluções:
- Configurar o acesso ao firewall do cliente.
- Configurar acesso público ao registro.
- Configurar o acesso da rede virtual.
- Configurar o acesso para serviços.
Solucionar problemas de entrada
Se você encontrar problemas de autenticação e autorização ao entrar em um registro de contêiner do Azure, considere as seguintes soluções:
- Verificar a configuração do Docker em seu ambiente.
- Especificar o nome de registro correto.
- Verificar as credenciais para acessar o registro.
- Configurar o acesso público ao registro.
- Solucionar problemas de entrada no registro.
- Verifique se as credenciais não expiraram.
Solucionar problemas de desempenho
Se você encontrar problemas de desempenho com um registro de contêiner do Azure, considere as seguintes soluções:
- Habilitar o cache de artefato.
- Verificar a velocidade de conexão de rede.
- Inspecionar o hardware do cliente que pode afetar a compactação da camada de imagem ou a velocidade de extração.
- Revisar os limites configurados na camada ou no ambiente do serviço do registro.
- Configurar o registro replicado geograficamente para obter o desempenho ideal com réplicas em regiões próximas.
- Otimizar a configuração de DNS para extrair de uma réplica do registro geograficamente distante.
Esses guias podem ajudar você a garantir a recuperação perfeita de imagens para seu cluster AKS e garantir o bom funcionamento de suas cargas de trabalho.
Integrar um registro de contêiner de terceiros
Ao usar um registro de contêiner de terceiros, você precisa criar as credenciais ImagePullSecret
apropriadas para o registro para que seu cluster AKS possa acessar com segurança as imagens de contêiner. Para obter mais informações, consulte Criar um segredo de pull de imagem. Configure as permissões e credenciais corretas para que poder verificar a conexão com o registro de contêiner e permitir que seu cluster AKS extraia com êxito as imagens de contêiner necessárias durante as implantações. Essa prática recomendada ajuda a garantir uma execução suave e confiável de suas cargas de trabalho em contêineres no Kubernetes.
Colaboradores
Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.
Principais autores:
- Paolo Salvatori | Engenheiro de Clientes Principal
- Francis Simy Nazareth | Especialista Técnico Sênior
Para ver perfis não públicos do LinkedIn, entre no LinkedIn.