Risolvere gli errori durante l'abilitazione o la disabilitazione di Azure Arc nei cluster del carico di lavoro del servizio Azure Kubernetes abilitati da Arc

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-AzAccounte 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 usare Enable-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 grouplocationtenant, e secretper connettere il cluster ad Azure Arc in una sottoscrizione e un gruppo di risorse diverso rispetto all'host del servizio Azure Kubernetes. È anche consigliabile eseguire Enable-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-AksHciRegistrationnuovo , 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:

  1. Connettere un cluster del carico di lavoro ad Azure Arc con Enable-AksHciArcConnection -name $clusterName.
  2. Disconnettere il cluster da Azure Arc: Disable-AksHciArcConnection -name $clusterName.
  3. 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-AksHciArcConnectiondi :

$clusterName = "<name of cluster>"
Get-AksHciCredential -name $clusterName
kubectl delete namespace azure-arc-release
Disable-AksHciArcConnection -name $clusterName
Enable-AksHciArcConnection -name $clusterName