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.