Azure Container Instancesによって使用される仮想ネットワークまたはサブネットを削除できませんでした
この記事では、Azure Container Instances (ACI) によって使用される仮想ネットワーク (VNet) またはサブネットを削除するときに発生するエラーについて説明し、回避策について説明します。
現象
ACI によって使用されるサブネットを削除すると、次のようなエラーが表示されます。
Failed to delete subnet '<subnet-name>'. Error: 'Subnet /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<vnet-name>/subnets/<subnet-name> requires any of the following delegations [Microsoft.ContainerInstance/containerGroups] to reference service association link / subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<vnet-name>/subnets/<subnet-name>/serviceAssociationLinks/acisal.'
Subnet <subnet-name> is in use by /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/networkProfiles/aci-network-profile-<network-profile-name>/containerNetworkInterfaceConfigurations/eth0/ipConfigurations/ipconfigprofile and cannot be deleted. In order to delete the subnet, delete all the resources within the subnet. See aka.ms/deletesubnet.
Failed to delete subnet '<subnet-name>'. Error: Subnet <subnet-name> is in use by /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/networkProfiles/aci-network-profile-<network-profile-name>/containerNetworkInterfaceConfigurations/eth0/ipConfigurations/ipconfigprofile/aci-network-profile-<network-profile-name>/eth0/ipconfigprofile and cannot be deleted. In order to delete the subnet, delete all the resources within the subnet. See aka.ms/deletesubnet.
ACI で使用されている VNet を削除すると、次のエラーが表示されます。
Failed to delete virtual network '<vnet-name>'. Error: 'Subnet /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<vnet-name>/subnets/<subnet-name> requires any of the following delegations [Microsoft.ContainerInstance/containerGroups] to reference service association link /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<vnet-name>/subnets/<subnet-name>/serviceAssociationLinks/acisal.'
原因 1: サービス関連付けリンクによって VNET/サブネットの削除がブロックされる
ACI で必要なサブネット委任は、残りのサービス関連付けリンクを参照する必要があります。これにより、ACI によって使用される VNet またはサブネットが削除されないようにします。
回避策: サービス関連付けリンクを削除する
Azure portal内のサブネットに移動します。
サブネットの委任を [なし] に変更します。
コマンドを使用してネットワーク プロファイルを
az network profile delete
削除し、ネットワーク プロファイルがサブネットにリンクされていないことを確認します。手順 3 のコマンドが失敗した場合は、ネットワーク プロファイルが残留している可能性があります。 残留ネットワーク プロファイルを削除するには、次のコマンドを使用します。
az network profile delete --id resourceIdOfNetworkProfile
ネットワーク プロファイルでサブネットの更新がブロックされる場合は、サブネットの委任をもう一度 [なし] に設定してみてください。
上記の手順で問題が解決しない場合は、バージョン 2018-10-01 など、指定した API バージョンを使用して、Azure CLI 経由でサービス関連付けリンクを削除してみてください。
az resource delete --ids /subscriptions/<subscription-id>/resourceGroups/<resourcegroup-name>/providers/Microsoft.Network/virtualNetworks/<vnet-name>/subnets/<subnet-name>/providers/Microsoft.ContainerInstance/serviceAssociationLinks/default --api-version 2018-10-01
原因 2: ネットワーク プロファイルによって VNet/サブネットの削除がブロックされる
コンテナー グループを削除すると、コンテナー グループの作成中に ACI によって作成されたネットワーク プロファイルが適切に削除されない可能性があります。 これにより、VNet またはサブネット内に何かが残り、特定の削除操作がブロックされます。
回避策 1: Azure portalからコンテナー グループのネットワーク プロファイルを削除する
すべての ACI コンテナー グループを削除した後、次の手順に従います。
- リソース グループに移動します。
- [ 非表示の型を表示する] を選択します。 既定では、ネットワーク プロファイルはAzure portalに非表示になります。
- コンテナー グループに関連するネットワーク プロファイルを選択します。
- [削除] を選択します。
- VNet またはサブネットを削除します。
回避策 2: Azure CLI を使用してコンテナー グループのネットワーク プロファイルを削除する
すべての ACI コンテナー グループを削除した後、次の手順に従います。
ネットワーク プロファイル ID を取得します。
NetworkProfile=$(az network vnet subnet show -g $RES_GROUP --vnet-name $VNET_NAME --name $SUBNET_NAME -o tsv --query ipConfigurationProfiles[].id)
ネットワーク プロファイルを削除します。
az network profile delete --ids $NetworkProfile --yes
サブネットを削除します。
az network vnet subnet delete --resource-group $RES_GROUP --vnet-name $VNET_NAME --name $SUBNET_NAME
VNet を削除します。
az network vnet delete --resource-group $RES_GROUP --name $SUBNET_NAME
回避策 3: Azure CLI を使用して containerNetworkInterfaceConfigurations プロパティを更新する
Azure portalを使用してネットワーク プロファイルを削除しても Azure CLI が失敗した場合は、ネットワーク プロファイル プロパティcontainerNetworkInterfaceConfigurations
を空のリストに更新します。
ネットワーク プロファイル ID を取得します。
NETWORK_PROFILE_ID=$(az network profile list --resource-group <resource-group-name> --query [0].id --output tsv)
ネットワーク プロファイルを更新します。
az resource update --ids $NETWORK_PROFILE_ID --set properties.containerNetworkInterfaceConfigurations=[]
ネットワーク プロファイルとサブネットを削除します。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。