Partilhar via


Solucionar problemas de extensão de registro conectada

Este artigo descreve algumas mensagens de erro comuns que você pode receber quando instala ou atualiza a extensão do Registro conectada para clusters Kubernetes habilitados para Arc.

Como é instalada a extensão de registo ligada

A extensão de registro conectada é liberada como um gráfico de leme e instalada pelo Helm V3. Todos os componentes da extensão do Registro conectado são instalados no namespace do Registro conectado. Você pode usar os seguintes comandos para verificar o status da extensão.

# get the extension status 
az k8s-extension show --name <extension-name>  
# check status of all pods of connected registry extension 
kubectl get pod -n connected-registry    
# get events of the extension 
kubectl get events -n connected-registry   --sort-by='.lastTimestamp'

Erros comuns

Erro: não é possível reutilizar um nome que ainda esteja a ser utilizado

Este erro significa que o nome da extensão que especificou já existe. Se o nome já estiver em uso, você precisará usar outro nome.

Erro: não é possível criar novo conteúdo no namespace connected-registry porque ele está sendo encerrado

Este erro acontece quando uma operação de desinstalação não é concluída e outra operação de instalação é acionada. Pode executar o comando az k8s-extension show para verificar o estado de aprovisionamento da extensão e certificar-se de que a extensão foi desinstalada antes de efetuar outras ações.

Erro: falha ao transferir o Gráfico, caminho não encontrado

Este erro acontece quando você especifica a versão de extensão errada. Tem de se certificar de que a versão especificada existe. Se quiser utilizar a versão mais recente, não precisa de especificar --version.

Cenários Comuns

Cenário 1: A instalação falha, mas não mostra uma mensagem de erro

Se a extensão gerar uma mensagem de erro ao criá-la ou atualizá-la, você poderá inspecionar onde a criação falhou executando o az k8s-extension list comando:

az k8s-extension list \ 
--resource-group <my-resource-group-name> \ 
--cluster-name <my-cluster-name> \ 
--cluster-type connectedClusters

Solução: reinicie o cluster, registre o provedor de serviços ou exclua e reinstale o registro conectado

Para corrigir esse problema, tente os seguintes métodos:

  • Reinicie o cluster do Arc Kubernetes.

  • Registre o provedor de serviços KubernetesConfiguration.

  • Forçar a exclusão e reinstalar a extensão de registro conectada.

Cenário 2: A versão do Registro conectado de destino não existe

Quando tenta instalar a extensão de registo ligada para se destinar a uma versão específica, recebe uma mensagem de erro que indica que a versão de registo ligado não existe.

Solução: Instale novamente para uma versão do Registro conectada suportada

Tente instalar novamente a extensão. Certifique-se de que utiliza uma versão suportada do registo ligado.

Problemas comuns

Problema: criação de extensão presa no estado de execução

Possibilidade 1: Problema com a reivindicação de volume persistente (PVC)

  • Verificar o estado do registo ligado PVC
kubectl get pvc -n connected-registry -o yaml connected-registry-pvc

O valor da fase sob status deve ser vinculado. Se não mudar de pendente, exclua a extensão.

  • Verifique se a classe de armazenamento desejada está na sua lista de classes de armazenamento:
kubectl get storageclass --all-namespaces
  • Caso contrário, recrie a extensão e adicione
--config pvc.storageClassName=”standard”` 
  • Alternativamente, pode ser um problema por não ter espaço suficiente para o PVC. Recrie a extensão com o parâmetro
--config pvc.storageRequest=”250Gi”` 

Possibilidade 2: String de conexão é ruim

  • Verifique os logs para o Pod de registro conectado:
kubectl get pod -n connected-registry
  • Copie o nome do pod de registro conectado (por exemplo: "connected-registry-8d886cf7f-w4prp") e cole-o no seguinte comando:
kubectl logs -n connected-registry connected-registry-8d886cf7f-w4prp
  • Se vir a seguinte mensagem de erro, a cadeia de ligação do registo ligado está incorreta:
Response: '{"errors":[{"code":"UNAUTHORIZED","message":"Incorrect Password","detail":"Please visit https://aka.ms/acr#UNAUTHORIZED for more information."}]}' 
  • Verifique se um arquivo protected-settings-extension.json foi criado
cat protected-settings-extension.json
  • Se necessário, regenere protected-settings-extension.json
cat << EOF > protected-settings-extension.json  
{ 
"connectionString": "$(az acr connected-registry get-settings \ 
--name myconnectedregistry \ 
--registry myacrregistry \ 
--parent-protocol https \ 
--generate-password 1 \ 
--query ACR_REGISTRY_CONNECTION_STRING --output tsv --yes)" 
} 
EOF
  • Atualize a extensão para incluir a nova cadeia de conexão
az k8s-extension update \ 
--cluster-name <myarck8scluster> \ 
--cluster-type connectedClusters \ 
--name <myconnectedregistry> \ 
-g <myresourcegroup> \ 
--config-protected-file protected-settings-extension.json

Problema: a extensão criada, mas o registro conectado não é um estado 'Online'

Possibilidade 1: O registo ligado anterior não foi desativado

Esse cenário geralmente acontece quando uma extensão de registro conectada anterior foi excluída e uma nova foi criada para o mesmo registro conectado.

  • Verifique os logs para o Pod de registro conectado:
kubectl get pod -n connected-registry
  • Copie o nome do pod de registro conectado (por exemplo: "connected-registry-xxxxxxxxx-xxxxx") e cole-o no seguinte comando:
kubectl logs -n connected-registry connected-registry-xxxxxxxxx-xxxxx
  • Se você vir a seguinte mensagem de erro, o registro conectado precisa ser desativado:

Response: '{"errors":[{"code":"ALREADY_ACTIVATED","message":"Failed to activate the connected registry as it is already activated by another instance. Only one instance is supported at any time.","detail":"Please visit https://aka.ms/acr#ALREADY_ACTIVATED for more information."}]}'

  • Execute o seguinte comando para desativar:
az acr connected-registry deactivate -n <myconnectedregistry> -r <mycontainerregistry>

Após alguns minutos, o pod de registro conectado deve ser recriado e o erro deve desaparecer.

Ativar registo

  • Execute o comando [az acr connected-registry update] para atualizar a extensão do registro conectado com o nível de log de depuração:
az acr connected-registry update --registry mycloudregistry --name myacrregistry --log-level debug
  • Os seguintes níveis de log podem ser aplicados para ajudar na solução de problemas:

    • Debug fornece informações detalhadas para fins de depuração.

    • As informações fornecem informações gerais para fins de depuração.

    • O aviso indica possíveis problemas que ainda não são erros, mas que podem se tornar um se nenhuma ação for tomada.

    • O erro registra erros que impedem a conclusão de uma operação.

    • Nenhum desativa o registro em log, portanto, nenhuma mensagem de log é gravada.

  • Ajuste o nível de log conforme necessário para solucionar o problema.

A seleção ativa fornece mais opções para ajustar a detalhamento dos logs ao depurar problemas com um registro conectado. Também estão disponíveis as seguintes opções:

O nível de log do Registro conectado é específico para as operações do Registro conectado e determina a gravidade das mensagens que o Registro conectado manipula. Essa configuração é usada para gerenciar o comportamento de log do próprio registro conectado.

--log-level define o nível de log na instância. O nível de log determina a gravidade das mensagens que o registrador manipula. Ao definir o nível de log, você pode filtrar mensagens que estão abaixo de uma determinada gravidade. Por exemplo, se você definir o nível de log como "aviso", o registrador manipulará avisos, erros e mensagens críticas, mas ignorará informações e mensagens de depuração.

O nível de log az cli controla a verbosidade das mensagens de saída durante a operação da CLI do Azure. A CLI do Azure (az) fornece várias opções de detalhamento para níveis de log, que podem ser ajustadas para controlar a quantidade de informações de saída durante sua operação:

--verbose aumenta a verborragia dos logs. Ele fornece informações mais detalhadas do que a configuração padrão, que pode ser útil para identificar problemas.

--debug permite logs de depuração completos. Os logs de depuração fornecem as informações mais detalhadas, incluindo todas as informações fornecidas no nível "detalhado", além de mais detalhes destinados ao diagnóstico de problemas.

Próximos passos