Falha ao excluir uma rede virtual ou sub-rede usada por Instâncias de Contêiner do Azure
Este artigo discute os erros que ocorrem quando você exclui uma rede virtual (VNet) ou sub-rede usada pela ACI (Instâncias de Contêiner do Azure) e fornece soluções alternativas.
Sintomas
Ao excluir uma sub-rede usada pela ACI, você recebe erros semelhantes aos seguintes:
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.
Ao excluir uma VNet usada pela ACI, você recebe o seguinte erro:
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.'
Causa 1: um link de associação de serviço bloqueia a exclusão da VNET/sub-rede
A delegação de sub-rede exigida pela ACI deve fazer referência a um Link de Associação de Serviço residual, o que impede a exclusão da VNet ou sub-rede usada pela ACI.
Solução alternativa: Excluir o link da associação de serviço
Navegue até a sub-rede no portal do Azure.
Altere a delegação de sub-rede para Nenhuma.
Exclua perfis de rede usando o
az network profile delete
comando para garantir que nenhum perfil de rede esteja vinculado à sub-rede.Se o comando na etapa 3 falhar, pode haver um perfil de rede persistente. Para excluir um perfil de rede persistente, use o seguinte comando:
az network profile delete --id resourceIdOfNetworkProfile
Se os perfis de rede ainda bloquearem a atualização da sub-rede, tente definir a delegação de sub-rede como Nenhum novamente.
Se as etapas anteriores não ajudarem, tente excluir o Link de Associação de Serviço por meio da CLI do Azure usando uma versão de API especificada, como a versão 2018-10-01:
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
Causa 2: os perfis de rede bloqueiam a exclusão da VNet/sub-rede
Quando você remove o grupo de contêineres, o perfil de rede criado pela ACI durante a criação do grupo de contêineres pode não ser excluído corretamente. Isso resulta em algo restante dentro da VNet ou sub-rede, o que bloqueia determinadas operações de exclusão.
Solução alternativa 1: excluir o perfil de rede do grupo de contêineres do portal do Azure
Depois de excluir todos os grupos de contêineres da ACI, siga estas etapas:
- Acesse o grupo de recursos.
- Escolha Exibir tipos ocultos. Por padrão, os perfis de rede estão ocultos no portal do Azure.
- Selecione o perfil de rede relacionado ao grupo de contêineres.
- Selecione Excluir.
- Exclua a VNet ou sub-rede.
Solução alternativa 2: excluir o perfil de rede do grupo de contêineres por meio da CLI do Azure
Depois de excluir todos os grupos de contêineres da ACI, siga estas etapas:
Obtenha a ID do perfil de rede:
NetworkProfile=$(az network vnet subnet show -g $RES_GROUP --vnet-name $VNET_NAME --name $SUBNET_NAME -o tsv --query ipConfigurationProfiles[].id)
Exclua o perfil de rede:
az network profile delete --ids $NetworkProfile --yes
Exclua a sub-rede:
az network vnet subnet delete --resource-group $RES_GROUP --vnet-name $VNET_NAME --name $SUBNET_NAME
Exclua a VNet:
az network vnet delete --resource-group $RES_GROUP --name $SUBNET_NAME
Solução alternativa 3: atualizar a propriedade containerNetworkInterfaceConfigurations por meio da CLI do Azure
Se a exclusão do perfil de rede por meio do portal do Azure e da CLI do Azure falhar, atualize a propriedade containerNetworkInterfaceConfigurations
do perfil de rede para uma lista vazia:
Obtenha a ID do perfil de rede:
NETWORK_PROFILE_ID=$(az network profile list --resource-group <resource-group-name> --query [0].id --output tsv)
Atualize o perfil de rede:
az resource update --ids $NETWORK_PROFILE_ID --set properties.containerNetworkInterfaceConfigurations=[]
Exclua o perfil de rede e a sub-rede.
Entre em contato conosco para obter ajuda
Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.