Résoudre les problèmes liés au code d’erreur InvalidResourceReference

Résumé

Utilisez cet article pour résoudre l’erreur InvalidResourceReference lorsque vous créez, déployez ou mettez à jour un cluster Azure Kubernetes Service (AKS) afin de pouvoir effectuer l’opération avec succès.

Symptôme 1

Lorsque vous essayez de créer un cluster AKS, vous recevez le message d’erreur suivant :

Code=« InvalidResourceReference »

Message="Ressource
/subscriptions/<subscription-id-guid>/resourceGroups/MyResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet-otcom/subnets/Subnet-AKS
référencé par ressource
/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup_MyCluster-AKS_JAPANEAST/providers/Microsoft.Compute/virtualMachineScaleSets/aks-nodepool-vmss
n’a pas été trouvé. Assurez-vous que la ressource référencée existe et que les deux ressources se trouvent dans la même région. »

Details=[]

Première cause

Voici les causes possibles de ce problème :

  • Une incompatibilité existe entre les ressources dans différentes régions.

    L’exemple de Symptôme 1 montre que le réseau virtuel et l'ensemble d'échelles de machines virtuelles ne se trouvent pas dans la même région. Étant donné que les ressources se trouvent dans différentes régions, vous ne pouvez pas créer l’instance de groupe identique.

  • Vous avez modifié ou supprimé manuellement la ressource référencée.

Solution 1

Si une incompatibilité existe entre les ressources dans différentes régions, passez en revue les ressources pour vous assurer qu’elles se trouvent dans la même région. Dans cet exemple, modifiez la région où vous générez le cluster AKS ou créez un réseau virtuel dans la même région.

Si vous modifiez ou supprimez manuellement la ressource référencée, vous pouvez rencontrer des difficultés pour résoudre ce problème, car le processus ne prend pas en charge la modification manuelle des ressources IaaS sous-jacentes dans le groupe de ressources MC_ . Vous pouvez résoudre ce problème en recréant la ressource supprimée, en l’associant avec vmSS, puis en déclenchant une mise à jour sur le cluster AKS. Toutefois, cette solution n’est pas prise en charge. La réussite n’est donc pas garantie.

Symptôme 2

Lorsque vous essayez de mettre à jour un cluster AKS, vous recevez le message d’erreur suivant :

Code=« InvalidResourceReference »
Message="Ressource
/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup/providers/Microsoft.Network/loadBalancers/kubernetes/frontendIPConfigurations/<frontendIP_ID> référencé par la ressource /subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup/providers/Microsoft.Network/loadBalancers/kubernetes/loadBalancingRules/<frontend_IP_rule> introuvable. Assurez-vous que la ressource référencée existe et que les deux ressources se trouvent dans la même région. »
Message="Ressource

Details=[]

Deuxième cause

Ce problème se produit si vous modifiez manuellement la règle aksOutboundRule de trafic sortant par défaut sur l’équilibreur de charge. Cette modification inattendue se produit généralement lorsque vous mettez à jour l’adresse IP sortante si vous mettez à jour le cluster sans le load-balancer-outbound-ips paramètre.

Solution 2

Réexécutez la az aks update commande avec le load-balancer-outbound-ips paramètre pour mettre à jour votre cluster. Utilisez l’ID de ressource de l’adresse IP publique comme valeur de paramètre. Pour plus d’informations, consultez Mettre à jour le cluster avec votre propre adresse IP publique sortante.

Symptôme 3

Lorsque vous créez, mettez à l’échelle, mettez à niveau ou mettez à jour un pool de nœuds, l’opération échoue avec un message d’erreur InvalidResourceReference semblable à l’exemple suivant :

Code=« InvalidResourceReference »
Message="Créer ou mettre à jour vmSS
/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup_MyCluster/providers/Microsoft.Compute/virtualMachineScaleSets/aks-nodepool-vmss
a échoué. Ressource
/subscriptions/<subscription-id-guid>/resourceGroups/<vnet-resource-group>/providers/Microsoft.Network/virtualNetworks/<vnet-name>
référencé par ressource
/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup_MyCluster/providers/Microsoft.Compute/virtualMachineScaleSets/aks-nodepool-vmss
n’a pas été trouvé."

Cause 3

Ce problème se produit lorsque vous déplacez le réseau virtuel associé au cluster AKS lors de la création du cluster vers un autre groupe de ressources ou un autre abonnement. AKS et le groupe de machines virtuelles identiques (VMSS) sous-jacent continuent à faire référence à l’ID de ressource du réseau virtuel d’origine. Par conséquent, les opérations de pool de nœuds qui nécessitent des mises à jour VMSS échouent, car le réseau virtuel ne se trouve plus sur son chemin de ressource d’origine.

Le déplacement du réseau virtuel d’un cluster AKS n’est pas pris en charge. Comme indiqué dans la prise en charge des opérations de déplacement des ressources réseau, si vous déplacez le réseau virtuel d’un cluster AKS, le cluster AKS cesse de fonctionner.

Solution 3

Il n’existe aucune méthode prise en charge pour mettre à jour un cluster AKS existant pour référencer le réseau virtuel une fois que vous l’avez déplacé. Support Microsoft et le groupe de produits AKS ne peuvent pas modifier les références réseau sous-jacentes du cluster.

Pour résoudre le problème, créez un cluster AKS qui référence le réseau virtuel à son emplacement actuel, migrez vos charges de travail vers le nouveau cluster, puis désactivez le cluster concerné.

Symptôme 4

Une opération Bastion managée AKS échoue avec une InvalidResourceReference erreur qui identifie une adresse IP publique.

Voici un exemple de message d’erreur.

Code=« InvalidResourceReference »

Message="La référence d’adresse IP publique spécifiée '<public-ip-resource-id>' n’est pas valide.

Cause 4

La référence d’adresse IP publique a un ID de ressource ou un type de ressource non valide, ou l’adresse IP publique ne répond pas aux exigences d’abonnement, de région, de référence SKU, d’adresse IP ou d’état d’approvisionnement.

Solution 4

Vérifiez les propriétés de l'adresse IP publique référencée dans le portail Azure.

Vous pouvez également utiliser le Azure CLI pour vérifier les propriétés de l'adresse IP publique.

Exécutez la commande suivante :

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

Utilisez un ID de ressource Microsoft.Network/publicIPAddresses valide dans le même abonnement que les ressources réseau du cluster et situé dans la même région que le cluster. L’adresse IP publique doit utiliser le SKU Standard et IPv4, et une adresse IP publique gérée par le client doit avoir un état d’approvisionnement de Succeeded.

Pour une nouvelle opération d’activation, passez l’ID corrigé à az aks bastion enable. Vérifiez que managed Bastion est disponible pour votre cluster et que votre extension installée aks-preview prend en charge la commande.

Dans Azure CLI, exécutez la commande suivante.

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

La az aks bastion update commande ne prend pas en charge le remplacement d’une liaison IP publique existante. La modification de l’adresse IP tant que Bastion existe ou que le nettoyage n’est pas terminé peut renvoyer UpdateNotAllowed. Si vous devez remplacer une liaison existante, contactez Support Microsoft pour obtenir des conseils.

Pour connaître les exigences d’allocation et d’utilisation, consultez Azure Bastion exigences relatives aux adresses IP publiques.

References

Résolution générale des problèmes de création de cluster AKS