Risolvere i problemi relativi all'estensione registro connesso
Questo articolo illustra alcuni messaggi di errore comuni che possono essere visualizzati durante l'installazione o l'aggiornamento dell'estensione registro connesso per i cluster Kubernetes abilitati per Arc.
Come viene installata l'estensione registro connesso
L'estensione registro connesso viene rilasciata come grafico Helm e installata da Helm V3. Tutti i componenti dell'estensione registro connesso vengono installati nello spazio dei nomi del registro connesso. È possibile usare i comandi seguenti per controllare lo stato dell'estensione.
# 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'
Errori comuni
Errore: non è possibile riutilizzare un nome ancora in uso
Questo errore indica che il nome dell'estensione specificato esiste già. Se il nome è già in uso, è necessario sceglierne un altro.
Errore: non è possibile creare nuovo contenuto nello spazio dei nomi del registro connesso perché è stato terminato
Questo errore si verifica quando un'operazione di disinstallazione non viene completata e viene attivata un'altra operazione di installazione. È possibile eseguire il comando az k8s-extension show
per controllare lo stato di provisioning dell'estensione e assicurarsi che l'estensione sia stata disinstallata prima di eseguire altre azioni.
Errore: il download non è riuscito perché il percorso grafico non è stato trovato
Questo errore si verifica quando si specifica una versione dell'estensione non corretta. È necessario assicurarsi che la versione specificata esista. Per usare la versione più recente, non è necessario specificare --version
.
Scenari comuni
Scenario 1: l'installazione non riesce ma non viene visualizzato alcun messaggio di errore
Se l'estensione genera un messaggio di errore quando viene creata o aggiornata, è possibile controllare il punto in cui la creazione non è riuscita eseguendo il comando az k8s-extension list
:
az k8s-extension list \
--resource-group <my-resource-group-name> \
--cluster-name <my-cluster-name> \
--cluster-type connectedClusters
Soluzione: riavviare il cluster, registrare il provider di servizi oppure eliminare e reinstallare il registro connesso
Per risolvere questo problema, provare i metodi seguenti:
Riavviare il cluster Kubernetes di Azure Arc.
Registrare il provider di servizi KubernetesConfiguration.
Forzare l'eliminazione e reinstallare l'estensione registro connesso.
Scenario 2: la versione del registro connesso di destinazione non esiste
Quando si tenta di installare l'estensione registro connesso per una versione specifica, viene visualizzato un messaggio di errore che indica che la versione del registro connesso non esiste.
Soluzione: ripetere l'installazione con una versione del registro connesso supportata
Provare a installare di nuovo l'estensione. Assicurarsi di usare una versione supportata del registro connesso.
Problemi comuni
Problema: la creazione dell'estensione è bloccata nello stato in corso di esecuzione
Possibilità 1: si è verificato un problema con l'attestazione di volume permanente
- Controllare lo stato dell'attestazione di volume permanente del registro connesso
kubectl get pvc -n connected-registry -o yaml connected-registry-pvc
Il valore della fase nello stato deve essere associato. Se rimane in sospeso, eliminare l'estensione.
- Controllare se la classe di archiviazione desiderata è presente nell'elenco delle classi di archiviazione:
kubectl get storageclass --all-namespaces
- In caso contrario, ricreare l'estensione e aggiungere
--config pvc.storageClassName=”standard”`
- In alternativa, potrebbe trattarsi di un problema come spazio insufficiente per l'attestazione di volume permanente. Ricreare l'estensione con il parametro
--config pvc.storageRequest=”250Gi”`
Possibilità 2: la stringa di connessione non è valida
- Controllare i log per il pod del registro connesso:
kubectl get pod -n connected-registry
- Copiare il nome del pod del registro connesso, ad esempio "connected-registry-8d886cf7f-w4prp", e incollarlo nel comando seguente:
kubectl logs -n connected-registry connected-registry-8d886cf7f-w4prp
- Se viene visualizzato il messaggio di errore seguente, la stringa di connessione del registro connesso non è valida:
Response: '{"errors":[{"code":"UNAUTHORIZED","message":"Incorrect Password","detail":"Please visit https://aka.ms/acr#UNAUTHORIZED for more information."}]}'
- Verificare che sia stato creato un file protected-settings-extension.json
cat protected-settings-extension.json
- Se necessario, rigenerare il file 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
- Aggiornare l'estensione per includere la nuova stringa di connessione
az k8s-extension update \
--cluster-name <myarck8scluster> \
--cluster-type connectedClusters \
--name <myconnectedregistry> \
-g <myresourcegroup> \
--config-protected-file protected-settings-extension.json
Problema: l'estensione è stata creata, ma il registro connesso non è nello stato "Online"
Possibilità 1: il registro connesso precedente non è stato disattivato
Questo scenario si verifica in genere quando un'estensione registro connesso precedente è stata eliminata e ne è stata creata una nuova per lo stesso registro connesso.
- Controllare i log per il pod del registro connesso:
kubectl get pod -n connected-registry
- Copiare il nome del pod del registro connesso, ad esempio "connected-registry-xxxxxxxxx-xxxxx", e incollarlo nel comando seguente:
kubectl logs -n connected-registry connected-registry-xxxxxxxxx-xxxxx
- Se viene visualizzato il messaggio di errore seguente, è necessario disattivare il registro connesso:
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."}]}'
- Eseguire questo comando per disattivarlo:
az acr connected-registry deactivate -n <myconnectedregistry> -r <mycontainerregistry>
Dopo alcuni minuti, il pod del registro connesso sarà stato ricreato e l'errore dovrebbe scomparire.
Abilitazione della registrazione
- Eseguire il comando [az acr connected-registry update] per aggiornare l'estensione registro connesso con il livello di log Debug:
az acr connected-registry update --registry mycloudregistry --name myacrregistry --log-level debug
Per facilitare la risoluzione dei problemi, è possibile applicare i livelli di log seguenti:
Debug fornisce informazioni dettagliate ai fini del debug.
Informazioni fornisce informazioni generali ai fini del debug.
Avviso indica potenziali problemi che non sono ancora errori, ma che potrebbero diventarlo se non si interviene.
Errore registra gli errori che impediscono il completamento di un'operazione.
Nessuno disattiva la registrazione, quindi non vengono scritti messaggi di log.
Modificare il livello di log in base alle esigenze per risolvere il problema.
La selezione attiva offre altre opzioni per regolare il livello di dettaglio dei log durante il debug dei problemi con un registro connesso. Sono disponibili le seguenti opzioni:
Il livello di log del registro connesso è specifico per le operazioni del registro stesso e determina la gravità dei messaggi gestiti dal registro connesso. Questa impostazione viene usata per gestire il comportamento di registrazione del registro connesso stesso.
--log-level: imposta il livello di log nell'istanza. Il livello di log determina la gravità dei messaggi gestiti dal logger. Impostando il livello di log, è possibile filtrare i messaggi al di sotto di una gravità specifica. Ad esempio, se si imposta il livello di log su "Avviso", il logger gestisce avvisi, errori e messaggi critici, ma ignora i messaggi di informazioni e di debug.
Il livello di log dell'interfaccia della riga di comando di Azure controlla il dettaglio dei messaggi di output durante l'esecuzione dell'interfaccia della riga di comando di Azure. L'interfaccia della riga di comando di Azure (az) offre diverse opzioni di dettaglio per i livelli di log, che possono essere regolati per controllare la quantità di informazioni di output durante l'esecuzione:
--verbose: aumenta il livello di dettaglio dei log. Fornisce informazioni più dettagliate rispetto all'impostazione predefinita, che può essere utile per identificare i problemi.
--debug: abilita i log di debug completi. I log di debug forniscono le informazioni più dettagliate, incluse tutte le informazioni fornite dal livello "dettagliato" e altri dettagli per la diagnosi dei problemi.