Solucionar problemas do código de erro InvalidResourceReference

Resumo

Use este artigo para solucionar o InvalidResourceReference erro ao criar, implantar ou atualizar um cluster do AKS (Serviço de Kubernetes do Azure) para que você possa concluir a operação com êxito.

Sintoma 1

Ao tentar criar um cluster do AKS, você recebe a seguinte mensagem de erro:

Code="ReferênciaRecursoInválida"

Message="Recurso
/subscriptions/<subscription-id-guid>/resourceGroups/MyResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet-otcom/subnets/Subnet-AKS
referenciado pelo recurso
/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup_MyCluster-AKS_JAPANEAST/providers/Microsoft.Compute/virtualMachineScaleSets/aks-nodepool-vmss
não foi encontrado. Verifique se o recurso referenciado existe e se ambos os recursos estão na mesma região."

Details=[]

Causa 1

Aqui estão as possíveis causas deste problema:

  • Existe uma incompatibilidade entre recursos em regiões diferentes.

    O exemplo no Sintoma 1 mostra que a rede virtual e o conjunto de dimensionamento de máquinas virtuais não estão na mesma região. Como os recursos estão em regiões diferentes, você não pode criar a instância do conjunto de dimensionamento.

  • Você modificou ou excluiu manualmente o recurso referenciado.

Solução 1

Se houver uma incompatibilidade entre recursos em regiões diferentes, examine os recursos para garantir que eles estejam na mesma região. Neste exemplo, modifique a região em que você cria o cluster do AKS ou crie uma nova rede virtual na mesma região.

Se você modificar ou excluir manualmente o recurso referenciado, poderá encontrar dificuldades para resolver esse problema porque o processo não dá suporte à modificação manual dos recursos de IaaS subjacentes no grupo de recursos MC_ . Você pode resolver esse problema recriando o recurso excluído, reassociando-o com o VMSS e disparando uma atualização no cluster do AKS. No entanto, essa solução não tem suporte, portanto, o sucesso não é garantido.

Sintoma 2

Ao tentar atualizar um cluster do AKS, você recebe a seguinte mensagem de erro:

Code="ReferênciaRecursoInválida"
Message="Recurso
/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup/providers/Microsoft.Network/loadBalancers/kubernetes/frontendIPConfigurations/<frontendIP_ID> referenciado pelo recurso /subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup/providers/Microsoft.Network/loadBalancers/kubernetes/loadBalancingRules/<frontend_IP_rule> não foi encontrado. Verifique se o recurso referenciado existe e se ambos os recursos estão na mesma região.
Message="Recurso

Details=[]

Causa 2

Esse problema ocorrerá se você modificar manualmente a regra aksOutboundRule de saída padrão no balanceador de carga. Essa modificação inesperada normalmente ocorre quando você atualiza o IP de saída se atualiza o cluster sem o load-balancer-outbound-ips parâmetro.

Solução 2

Execute novamente o az aks update comando com o load-balancer-outbound-ips parâmetro para atualizar o cluster. Use o ID do recurso do IP público como o valor do parâmetro. Para obter mais informações, consulte Atualizar o cluster com seu próprio IP público de saída.

Sintoma 3

Quando você cria, dimensiona, faz upgrade ou atualiza um pool de nós, a operação falha com uma mensagem de erro InvalidResourceReference semelhante ao exemplo a seguir:

Code="ReferênciaRecursoInválida"
Message="Criar ou atualizar VMSS
/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup_MyCluster/providers/Microsoft.Compute/virtualMachineScaleSets/aks-nodepool-vmss
falhou. Recurso
/subscriptions/<subscription-id-guid>/resourceGroups/<vnet-resource-group>/providers/Microsoft.Network/virtualNetworks/<vnet-name>
referenciado pelo recurso
/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup_MyCluster/providers/Microsoft.Compute/virtualMachineScaleSets/aks-nodepool-vmss
não foi encontrado."

Causa 3

Esse problema ocorre quando você move a rede virtual associada ao cluster do AKS durante a criação do cluster para outro grupo de recursos ou assinatura. O AKS e o VMSS (Conjunto de Dimensionamento de Máquinas Virtuais) subjacente continuam a referenciar a ID do recurso de rede virtual original. Como resultado, as operações de pool de nós que exigem atualizações do VMSS falham porque a rede virtual não pode mais ser encontrada em seu caminho de recurso original.

Não há suporte para mover a rede virtual de um cluster do AKS. Conforme documentado no suporte à operação Move para recursos de rede, se você mover a rede virtual para um cluster do AKS, o cluster do AKS deixará de funcionar.

Solução 3

Não há nenhum método com suporte para atualizar um cluster do AKS existente para fazer referência à rede virtual depois de movê-la. Suporte da Microsoft e o grupo de produtos do AKS não podem modificar as referências de rede subjacentes do cluster.

Para resolver o problema, crie um cluster do AKS que faça referência à rede virtual em seu local atual, migre suas cargas de trabalho para o novo cluster e, em seguida, desative o cluster afetado.

Sintoma 4

Uma operação do Bastion gerenciado pelo AKS falha com um InvalidResourceReference erro que identifica um endereço IP público.

Veja a seguir um exemplo da mensagem de erro.

Code="ReferênciaRecursoInválida"

Message="A referência de endereço IP público especificada '<public-ip-resource-id>' é inválida."

Causa 4

A referência de IP público tem um tipo de recurso ou ID de recurso inválido ou o IP público não atende aos requisitos de assinatura, região, SKU, versão ip ou estado de provisionamento.

Solução 4

Verifique as Propriedades do IP público referenciado no portal do Azure.

Você também pode usar o CLI do Azure para verificar as propriedades do IP público.

Execute o comando a seguir.

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

Use uma Microsoft.Network/publicIPAddresses ID de recurso válida na mesma assinatura que os recursos de rede do cluster e na mesma região do cluster. O IP público deve usar o SKU Standard e IPv4, e um IP público gerenciado pelo cliente deve ter um estado de provisionamento de Succeeded.

Para uma nova operação de habilitação, passe o ID corrigido para az aks bastion enable. Confirme se o Bastion gerenciado está disponível para o cluster e se a extensão instalada aks-preview dá suporte ao comando.

Em CLI do Azure, execute o comando a seguir.

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

O az aks bastion update comando não dá suporte à substituição de uma associação de IP pública existente. Alterar o IP enquanto o Bastion ainda existir ou a limpeza não tiver sido concluída pode retornar UpdateNotAllowed. Se você precisar substituir uma associação existente, entre em contato com Suporte da Microsoft para obter diretrizes.

Para requisitos de alocação e uso, consulte Azure Bastion requisitos de IP públicos.

References

Solução de problemas gerais de criação de cluster do AKS