Si applica a: Servizio Azure Kubernetes in Azure locale, servizio Azure Kubernetes in Windows Server
Questo articolo descrive gli errori che possono verificarsi (e le relative soluzioni alternative) durante la connessione o la disconnessione dei cluster del carico di lavoro del servizio Azure Kubernetes ad Azure Arc usando i Enable-AksHciArcConnection
cmdlet di PowerShell e Disable-AksHciArcConnection
in AKS Arc. Per i problemi non trattati in questo articolo, vedere Risoluzione dei problemi relativi a Kubernetes con abilitazione di Arc.
È anche possibile aprire un problema di supporto se nessuna delle soluzioni alternative elencate si applica all'utente.
Errore: "Non è stato trovato un cluster del carico di lavoro con il nome "my-aks-cluster"
Questo errore indica che non è stato creato il cluster del carico di lavoro o che il nome del cluster del carico di lavoro non è stato digitato correttamente.
Eseguire Get-AksHciCluster per assicurarsi di avere il nome corretto o che il cluster che si vuole connettere ad Arc esista.
Errore: "System.Management.Automation.RemoteException Starting onboarding process Cluster "azure-arc-onboarding" set..."
L'errore seguente può verificarsi quando si usa Windows Admin Center per creare un cluster del carico di lavoro e connetterlo a Kubernetes abilitato per Arc:
System.Management.Automation.RemoteException Starting onboarding process Cluster "azure-arc-onboarding" set. User "azure-arc-onboarding" set. Context "azure-arc-onboarding" created. Switched to context "azure-arc-onboarding". Azure login az login: error: argument --password/-p: expected one argument usage: az login [-h] [--verbose] [--debug] [--only-show-errors] [--output {json,jsonc,yaml,yamlc,table,tsv,none}] [--query JMESPATH] [--username USERNAME] [--password PASSWORD] [--service-principal] [--tenant TENANT] [--allow-no-subscriptions] [-i] [--use-device-code] [--use-cert-sn-issuer] : Job Failed Condition]
Per risolvere questo problema, esaminare le opzioni seguenti:
- Opzione 1: Eliminare il cluster del carico di lavoro e riprovare a usare Windows Admin Center.
- Opzione 2: in PowerShell verificare se il cluster è stato creato correttamente eseguendo il comando Get-AksHciCluster e quindi usare Enable-AksHciArcConnection per connettere il cluster ad Arc.
'Enable-AksHciArcConnection' ha esito negativo se 'Connect-AzAccount' viene usato per accedere ad Azure
Quando si usa Connect-AzAccount
per accedere ad Azure, è possibile impostare una sottoscrizione diversa come contesto predefinito rispetto a quella fornita come input a Set-AksHciRegistration
. Quando si esegue Enable-AksHciArcConnection
, il comando prevede che la sottoscrizione usata in Set-AksHciRegistration
. Tuttavia, Enable-AksHciArcConnection
ottiene la sottoscrizione predefinita impostata usando Connect-AzAccount
e pertanto potrebbe causare un errore.
Per evitare questo errore, seguire una delle opzioni seguenti:
Opzione 1: eseguire
Set-AksHciRegistration
per accedere ad Azure con gli stessi parametri (sottoscrizione e gruppo di risorse) usati al primo esecuzione del comando per connettere l'host del servizio Azure Kubernetes ad Azure per la fatturazione. È quindi possibile usareEnable-AksHciArcConnection -Name <ClusterName>
con i valori predefiniti e il cluster sarà connesso ad Arc nella sottoscrizione di fatturazione dell'host del servizio Azure Kubernetes e nel gruppo di risorse.Opzione 2: eseguire
Enable-AksHciArcRegistration
con tutti i parametri,subscription
, ,resource group
location
tenant
, esecret
per connettere il cluster ad Azure Arc in una sottoscrizione e un gruppo di risorse diverso rispetto all'host del servizio Azure Kubernetes. È anche consigliabile eseguireEnable-AksHciArcRegistration
se non si dispone di autorizzazioni sufficienti per connettere il cluster ad Azure Arc usando l'account Azure, ad esempio se non si è il proprietario della sottoscrizione.
Errore: 'Timeout in attesa della condizione'
Questo errore indica in genere uno dei problemi seguenti:
- I cluster sono stati creati in una macchina virtuale di Azure in un ambiente virtualizzato o sono stati distribuiti il servizio Azure Kubernetes in locale di Azure in più livelli di virtualizzazione.
- Un internet lento ha causato il timeout.
Se uno degli scenari precedenti si applica all'utente, eseguire Disable-AksHciArcConnection e riprovare a connettersi. Se lo scenario precedente non si applica, aprire un problema di supporto per il servizio Azure Kubernetes in locale di Azure.
Errore: "Segreti "sh.helm.release.v1.azure-arc.v1" non trovato"
Questo errore indica che non è stato possibile raggiungere il server API Kubernetes.
Provare a eseguire di nuovo il Disable-AksHciArcConnection
comando e quindi passare al portale di Azure per verificare che la connectedCluster
risorsa sia stata effettivamente eliminata. È anche possibile eseguire kubectl get ns -A
per verificare che lo spazio dei nomi , azure-arc
, non esista nel cluster.
Errore: "Connessione ad Azure non riuscita. Eseguire "Set-AksHciRegistration" e riprovare"
Questo errore indica che le credenziali di accesso ad Azure sono scadute.
Usare Set-AksHciRegistration
per accedere ad Azure prima di eseguire di nuovo il Enable-AksHciArcConnection
comando. Quando si esegue di Set-AksHciRegistration
nuovo , assicurarsi di usare la stessa sottoscrizione e i dettagli del gruppo di risorse usati quando è stato registrato per la prima volta l'host del servizio Azure Kubernetes in Azure per la fatturazione. Se si esegue di nuovo il comando con una sottoscrizione o un gruppo di risorse diverso, non verranno registrati. Dopo aver impostato la sottoscrizione e il gruppo di risorse in Set-AksHciRegistration
, non possono essere modificati senza disinstallare AKS Arc.
Errore: "'My-Cluster' non è un nome di cluster valido. I nomi devono essere minuscoli e corrispondere al criterio di espressione regolare: '^[a-z0-9][a-z0-9-]*[a-z0-9]$'"
Questo errore indica che il cluster del carico di lavoro non segue la convenzione di denominazione di Kubernetes.
Come suggerisce l'errore, assicurarsi che il nome del cluster sia in minuscolo e corrisponda al modello di espressione regolare: '^[a-z0-9][a-z0-9-]*[a-z0-9]$'.
Errore: "addons.msft.microsoft "demo-arc-onboarding" già esistente"
Questo errore indica in genere che il cluster del servizio Azure Kubernetes è già connesso a Kubernetes abilitato per Arc.
Per verificare che sia connesso, passare al portale di Azure e controllare la sottoscrizione e il gruppo di risorse specificati durante l'esecuzione Set-AksHciRegistration
(se sono stati usati valori predefiniti) o Enable-AksHciArcConnection
(se non sono stati usati valori predefiniti). È anche possibile verificare se il servizio Azure Kubernetes nel cluster locale di Azure è connesso ad Azure eseguendo il comando dell'interfaccia della az connectedk8s show
riga di comando di Azure. Se il cluster del carico di lavoro non viene visualizzato, eseguire Disable-AksHciArcConnection
e riprovare.
Errore: "autorest/azure: Il servizio ha restituito un errore. Status=404 Code="ResourceNotFound"..."
Questo errore indica che Azure non riesce a trovare la connectedCluster
risorsa di Azure Resource Manager associata al cluster:
"autorest/azure: il servizio ha restituito un errore. Status=404 Code="ResourceNotFound" Message="The Resource 'Microsoft.Kubernetes/connectedClusters/my-workload-cluster' nel gruppo di risorse 'AKS-HCI2' non è stato trovato. Per altri dettagli, vedere https://aka.ms/ARMResourceNotFoundFix"]"
Questo errore può verificarsi se:
- È stato specificato un gruppo di risorse o una sottoscrizione non corretti durante l'esecuzione del
Disable-AksHciArcConnection
cmdlet. - La risorsa nella portale di Azure è stata eliminata manualmente.
- Azure Resource Manager non riesce a trovare la risorsa di Azure.
Per risolvere questo errore, come indicato nel messaggio di errore, vedere Risolvere gli errori non trovati della risorsa.
Errore: "Errore di disinstallazione dell'arco dei componenti aggiuntivi del cluster: gli spazi dei nomi "azure-arc" non sono stati trovati"
Questo errore indica in genere che gli agenti Arc sono già stati disinstallati dal cluster del carico di lavoro o che lo azure-arc
spazio dei nomi è stato eliminato manualmente usando il kubectl
comando .
Passare al portale di Azure per verificare che non siano presenti risorse perse. Ad esempio, verificare di non visualizzare una connectedCluster
risorsa nella sottoscrizione e nel gruppo di risorse.
Errore: "La sottoscrizione di Azure non è configurata correttamente"
Questo problema può verificarsi se non è stata configurata la sottoscrizione di Azure con i provider di risorse Kubernetes abilitati per Arc. Attualmente è possibile verificare che Microsoft.Kubernetes
e Microsoft.KubernetesConfiguration
siano configurati.
Per altre informazioni sull'abilitazione di questi provider di risorse, vedere Registrare i provider per Kubernetes con abilitazione di Arc.
Errore: "Impossibile leggere ConfigMap 'azure-clusterconfig' nello spazio dei nomi 'azure-arc'
Questo problema può verificarsi quando si tenta di riabilitare la connessione Arc in un cluster del servizio Azure Kubernetes dopo aver disabilitato una connessione esistente. L'errore è dovuto a una modifica allo spazio dei nomi in cui vengono archiviati i segreti di Azure Arc.
I passaggi che portano all'errore sono:
- Connettere un cluster del carico di lavoro ad Azure Arc con
Enable-AksHciArcConnection -name $clusterName
. - Disconnettere il cluster da Azure Arc:
Disable-AksHciArcConnection -name $clusterName
. - Connettere di nuovo il cluster del carico di lavoro ad Azure Arc con questo comando:
Enable-AksHciArcConnection -name $clusterName
.
L'errore è:
returned a non zero exit code 1 [Error: Job azure-arc-onboarding terminated with Failed to run CLI command: Error from server (NotFound): namespaces "azure-arc"
not found
System.Management.Automation.RemoteException
ERROR: Unable to read ConfigMap 'azure-clusterconfig' in 'azure-arc' namespace:
Error Response: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"configmaps \"azure-clusterconfig\" not
found","reason":"NotFound","details":{"name":"azure-clusterconfig","kind":"configmaps"},"code":404}
System.Management.Automation.RemoteException
System.Management.Automation.RemoteException
: Job Failed Condition
Enable-AksHciArcConnection
ha sempre esito negativo e, dopo l'esecuzione Disable-AksHciArcConnection
, è presente un segreto rimanente nello spazio dei nomi azure-arc-release. Per verificare se il segreto esiste, è possibile eseguire il comando seguente e assicurarsi che non sia elencato alcun segreto:
kubectl get secret -nazure-arc-release sh.helm.release.v1.azure-arc.v1
Per risolvere questo problema, eliminare lo spazio dei nomi azure-arc-release dopo l'esecuzione Disable-AksHciArcConnection
di :
$clusterName = "<name of cluster>"
Get-AksHciCredential -name $clusterName
kubectl delete namespace azure-arc-release
Disable-AksHciArcConnection -name $clusterName
Enable-AksHciArcConnection -name $clusterName