Risolvere i problemi relativi al codice di errore InvalidResourceReference

Sommario

Usare questo articolo per risolvere l'errore durante la creazione, la distribuzione o l'aggiornamento InvalidResourceReference di un cluster del servizio Azure Kubernetes in modo da poter completare correttamente l'operazione.

Sintomo 1

Quando si tenta di creare un cluster del servizio Azure Kubernetes, viene visualizzato il messaggio di errore seguente:

Code="RiferimentoRisorsaNonValido"

Message="Resource
/subscriptions/<subscription-id-guid>/resourceGroups/MyResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet-otcom/subnets/Subnet-AKS
a cui fa riferimento la risorsa
/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup_MyCluster-AKS_JAPANEAST/providers/Microsoft.Compute/virtualMachineScaleSets/aks-nodepool-vmss
non è stato trovato. Assicurarsi che la risorsa a cui si fa riferimento esista e che entrambe le risorse si trovino nella stessa area".

Dettagli=[]

Causa 1

Ecco le possibili cause di questo problema:

  • Esiste una mancata corrispondenza tra le risorse in aree diverse.

    L'esempio in Sintomo 1 mostra che la rete virtuale e il set di scalabilità di macchine virtuali non si trovano nella stessa area. Poiché le risorse si trovano in aree diverse, non è possibile creare l'istanza del set di scalabilità.

  • La risorsa a cui si fa riferimento è stata modificata o eliminata manualmente.

Soluzione 1

Se esiste una mancata corrispondenza tra le risorse in aree diverse, esaminare le risorse per assicurarsi che si trovano nella stessa area. In questo esempio, modifica la regione in cui crei il cluster AKS oppure crea una nuova rete virtuale nella stessa regione.

Se si modifica o si elimina manualmente la risorsa a cui si fa riferimento, è possibile che si verifichino problemi durante la risoluzione di questo problema perché il processo non supporta la modifica manuale delle risorse IaaS sottostanti nel gruppo di risorse MC_ . È possibile risolvere questo problema ricreando la risorsa eliminata, riassociandola al set di scalabilità di macchine virtuali e quindi avviando un aggiornamento del cluster AKS. Tuttavia, questa soluzione non è supportata, quindi il successo non è garantito.

Sintomo 2

Quando si tenta di aggiornare un cluster del servizio Azure Kubernetes, viene visualizzato il messaggio di errore seguente:

Code="RiferimentoRisorsaNonValido"
Message="Resource
"/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup/providers/Microsoft.Network/loadBalancers/kubernetes/frontendIPConfigurations/<frontendIP_ID> cui si fa riferimento dalla risorsa /subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup/providers/Microsoft.Network/loadBalancers/kubernetes/loadBalancingRules/<frontend_IP_rule> non è stato trovato. Assicurati che la risorsa di riferimento esista e che entrambe le risorse si trovino nella stessa area."
Message="Resource

Dettagli=[]

Causa 2

Questo problema si verifica se si modifica manualmente la regola predefinita in uscita aksOutboundRule sul bilanciatore del carico. Questa modifica imprevista si verifica in genere quando si aggiorna l'IP in uscita se si aggiorna il cluster senza il load-balancer-outbound-ips parametro .

Soluzione 2

Eseguire di nuovo il az aks update comando con il load-balancer-outbound-ips parametro per aggiornare il cluster. Usare l'ID risorsa dell'indirizzo IP pubblico come valore del parametro. Per ulteriori informazioni, consultare Aggiornare il cluster con il proprio indirizzo IP pubblico in uscita.

Sintomo 3

Quando si crea, ridimensiona, aggiorna o aggiorna un pool di nodi, l'operazione non riesce con un InvalidResourceReference messaggio di errore simile all'esempio seguente:

Code="RiferimentoRisorsaNonValido"
Creare o aggiornare VMSS
/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup_MyCluster/providers/Microsoft.Compute/virtualMachineScaleSets/aks-nodepool-vmss
Operazione non riuscita. risorsa
/subscriptions/<subscription-id-guid>/resourceGroups/<vnet-resource-group>/providers/Microsoft.Network/virtualNetworks/<vnet-name>
a cui fa riferimento la risorsa
/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup_MyCluster/providers/Microsoft.Compute/virtualMachineScaleSets/aks-nodepool-vmss
non è stato trovato".

Causa 3

Questo problema si verifica quando si sposta la rete virtuale associata al cluster AKS durante la creazione del cluster in un altro gruppo di risorse o in un'altra sottoscrizione. AKS e il set di scalabilità di macchine virtuali (VMSS) sottostante continuano a fare riferimento all'ID della risorsa della rete virtuale originale. Di conseguenza, le operazioni del pool di nodi che richiedono aggiornamenti di VMSS non riescono perché la rete virtuale non può più essere trovata nel percorso originale della risorsa.

Lo spostamento della rete virtuale di un cluster AKS non è supportato. Come documentato in Supporto delle operazioni di spostamento per le risorse di rete, se si sposta la rete virtuale per un cluster del servizio Azure Kubernetes, il cluster del servizio Azure Kubernetes smette di funzionare.

Soluzione 3

Non esiste un metodo supportato per aggiornare un cluster del servizio Azure Kubernetes esistente per fare riferimento alla rete virtuale dopo averlo spostato. supporto tecnico Microsoft e il gruppo di prodotti del servizio Azure Kubernetes non possono modificare i riferimenti di rete sottostanti del cluster.

Per risolvere il problema, creare un nuovo cluster AKS che faccia riferimento alla rete virtuale nella posizione attuale, migrare i carichi di lavoro nel nuovo cluster e quindi dismettere il cluster interessato.

Sintomo 4

Un'operazione Bastion gestita di AKS non riesce con l'errore InvalidResourceReference in cui viene identificato un indirizzo IP pubblico.

Di seguito è riportato un esempio del messaggio di errore.

Code="RiferimentoRisorsaNonValido"

Message="Il riferimento all'indirizzo IP pubblico specificato '<public-ip-resource-id>' non è valido".

Causa 4

Il riferimento IP pubblico ha un ID risorsa o un tipo di risorsa non valido oppure l'INDIRIZZO IP pubblico non soddisfa i requisiti di sottoscrizione, area, SKU, versione IP o stato di provisioning.

Soluzione 4

Controllare le proprietà dell'indirizzo IP pubblico di riferimento nel portale di Azure.

È anche possibile usare il interfaccia della riga di comando di Azure per controllare le proprietà dell'indirizzo IP pubblico.

Esegui il comando seguente:

az network public-ip show --ids "<public-ip-resource-id>" --query "{id:id,location:location,sku:sku.name,version:publicIPAddressVersion,allocation:publicIPAllocationMethod,state:provisioningState,ipConfiguration:ipConfiguration.id}" --output json

Usare un ID di risorsa Microsoft.Network/publicIPAddresses valido nella stessa sottoscrizione delle risorse di rete del cluster e nella stessa area geografica del cluster. L'indirizzo IP pubblico deve usare lo SKU Standard e IPv4 e un indirizzo IP pubblico gestito dal cliente deve avere uno stato di provisioning di Succeeded.

Per una nuova operazione di abilitazione, passare l'ID corretto ad az aks bastion enable. Verificare che Bastion gestito sia disponibile per il cluster e che l'estensione installata aks-preview supporti il comando .

In interfaccia della riga di comando di Azure eseguire il comando seguente.

az aks bastion enable --subscription "<cluster-subscription-id>" --resource-group "<cluster-resource-group>" --name "<cluster-name>" --bastion-public-ip "<public-ip-resource-id>"

Il az aks bastion update comando non supporta la sostituzione di un'associazione IP pubblica esistente. La modifica dell'indirizzo IP quando Bastion è ancora presente o la pulizia non è ancora completata può restituire UpdateNotAllowed. Se devi sostituire un binding esistente, contatta il Supporto tecnico Microsoft per ricevere assistenza.

Per i requisiti di allocazione e utilizzo, vedere Azure Bastion requisiti per gli indirizzi IP pubblici.

References

Risoluzione generale delle problematiche di creazione del cluster AKS