まとめ
この記事では、操作を正常に完了できるように、Azure Kubernetes Service (AKS) クラスターを作成、デプロイ、または更新するときの InvalidResourceReference エラーのトラブルシューティングを行います。
現象 1
AKS クラスターを作成しようとすると、次のエラー メッセージが表示されます。
Code="無効なリソース参照"
Message="リソース"
/subscriptions/<subscription-id-guid>/resourceGroups/MyResourceGroup/providers/Microsoft.Network/virtualNetworks/vnet-otcom/subnets/Subnet-AKS
リソースによって参照される
/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup_MyCluster-AKS_JAPANEAST/providers/Microsoft.Compute/virtualMachineScaleSets/aks-nodepool-vmss
該当するものが見つかりませんでした。 参照先のリソースが存在し、両方のリソースが同じリージョンにあることを確認してください。詳細=[]
原因 1
この問題の考えられる原因を次に示します。
異なるリージョン内のリソース間に不一致が存在します。
現象 1 の例は、仮想ネットワークと仮想マシン スケール セットが同じリージョンにないことを示しています。 リソースは異なるリージョンにあるため、スケール セット インスタンスを作成することはできません。
参照先のリソースを手動で変更または削除しました。
解決策 1
異なるリージョン内のリソース間に不一致が存在する場合は、リソースを確認して、それらが同じリージョンにあることを確認します。 この例では、AKS クラスターを構築するリージョンを変更するか、同じリージョンに新しい仮想ネットワークを作成します。
参照先のリソースを手動で変更または削除すると、MC_ リソース グループ内の基になる IaaS リソースの手動変更がプロセスでサポートされていないため、この問題の解決に問題 が 発生する可能性があります。 この問題を解決するには、削除されたリソースを再作成し、VMSS と再関連付けしてから、AKS クラスターで更新をトリガーします。 ただし、このソリューションはサポートされていないため、成功は保証されません。
現象 2
AKS クラスターを更新しようとすると、次のエラー メッセージが表示されます。
Code="無効なリソース参照"
Message="リソース"
/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup/providers/Microsoft.Network/loadBalancers/kubernetes/frontendIPConfigurations/<frontendIP_ID> が、リソース /subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup/providers/Microsoft.Network/loadBalancers/kubernetes/loadBalancingRules/<frontend_IP_rule> によって参照されましたが、見つかりませんでした。 参照されているリソースが存在し、両方のリソースが同じリージョンにあることを確認してください。
Message="リソース"詳細=[]
原因 2
この問題は、ロード バランサーの既定の送信規則 aksOutboundRule を手動で変更する場合に発生します。 この予期しない変更は、通常、 load-balancer-outbound-ips パラメーターを指定せずにクラスターを更新する場合に送信 IP を更新するときに発生します。
解決策 2
クラスターを更新するには、az aks update パラメーターを指定して load-balancer-outbound-ips コマンドを再実行します。 パラメーター値としてパブリック IP のリソース ID を使用します。 詳細については、「 独自の送信パブリック IP を使用してクラスターを更新する」を参照してください。
現象 3
ノード プールを作成、スケーリング、アップグレード、または更新すると、次の例のような InvalidResourceReference エラー メッセージが表示され、操作が失敗します。
Code="無効なリソース参照"
Message="VMSS の作成または更新
/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup_MyCluster/providers/Microsoft.Compute/virtualMachineScaleSets/aks-nodepool-vmss
できませんでした。 資源
/subscriptions/<subscription-id-guid>/resourceGroups/<vnet-resource-group>/providers/Microsoft.Network/virtualNetworks/<vnet-name>
リソースによって参照される
/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyResourceGroup_MyCluster/providers/Microsoft.Compute/virtualMachineScaleSets/aks-nodepool-vmss
が見つかりませんでした。
原因3
この問題は、クラスターの作成時に AKS クラスターに関連付けられた仮想ネットワークを別のリソース グループまたはサブスクリプションに移動するときに発生します。 AKS と基になる仮想マシン スケール セット (VMSS) は、元の仮想ネットワーク リソース ID を引き続き参照します。 その結果、仮想ネットワークが元のリソース パスで見つからないため、VMSS の更新を必要とするノード プール操作は失敗します。
AKS クラスターの仮想ネットワークの移動はサポートされていません。 ネットワーク リソースの移動操作のサポートに関する記事に記載されているように、AKS クラスターの仮想ネットワークを移動すると、AKS クラスターは動作を停止します。
解決策 3
移動後に仮想ネットワークを参照するように既存の AKS クラスターを更新する方法はサポートされていません。 Microsoft サポートと AKS 製品グループは、クラスターの基になるネットワーク参照を変更できません。
この問題を解決するには、現在の場所にある仮想ネットワークを参照する新しい AKS クラスターを作成し、ワークロードを新しいクラスターに移行してから、影響を受けるクラスターの使用を停止します。
現象 4
AKS マネージド Bastion 操作が失敗し、パブリック IP アドレスを識別する InvalidResourceReference エラーが発生します。
エラー メッセージの例を次に示します。
Code="無効なリソース参照"
Message="指定されたパブリック IP アドレス参照 '<public-ip-resource-id>' が無効です。
原因 4
パブリック IP 参照に無効なリソース ID またはリソースの種類が含まれているか、パブリック IP がサブスクリプション、リージョン、SKU、IP バージョン、またはプロビジョニング状態の要件を満たしていません。
解決策 4
Azure ポータルで、参照されているパブリック IP のプロパティを確認します。
Azure CLIを使用して、パブリック IP のプロパティを確認することもできます。
次のコマンドを実行します。
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
有効な Microsoft.Network/publicIPAddresses リソース ID は、クラスターのネットワーク リソースと同じサブスクリプションとクラスターと同じリージョンで使用します。 パブリック IP は Standard SKU と IPv4 を使用する必要があり、カスタマー マネージドパブリック IP は Succeededのプロビジョニング状態である必要があります。
新しい有効化操作の場合は、修正された ID を az aks bastion enable に渡します。 マネージド Bastion がクラスターで使用可能であり、インストールされている aks-preview 拡張機能でコマンドがサポートされていることを確認します。
Azure CLIで、次のコマンドを実行します。
az aks bastion enable --subscription "<cluster-subscription-id>" --resource-group "<cluster-resource-group>" --name "<cluster-name>" --bastion-public-ip "<public-ip-resource-id>"
az aks bastion update コマンドは、既存のパブリック IP バインディングの置き換えをサポートしていません。 Bastion が存在する間、またはクリーンアップが不完全な間に IP を変更すると、 UpdateNotAllowedが返される可能性があります。 既存のバインディングを置き換える必要がある場合は、Microsoft サポートにお問い合わせください。
割り当てと使用の要件については、パブリック IP 要件Azure Bastion参照してください。