Compartilhar via


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.'
    

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.

  1. Navegue até a sub-rede no portal do Azure.

  2. Altere a delegação de sub-rede para Nenhuma.

  3. Exclua perfis de rede usando o az network profile delete comando para garantir que nenhum perfil de rede esteja vinculado à sub-rede.

  4. 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
    
  5. Se os perfis de rede ainda bloquearem a atualização da sub-rede, tente definir a delegação de sub-rede como Nenhum novamente.

  6. 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:

  1. Acesse o grupo de recursos.
  2. Escolha Exibir tipos ocultos. Por padrão, os perfis de rede estão ocultos no portal do Azure.
  3. Selecione o perfil de rede relacionado ao grupo de contêineres.
  4. Selecione Excluir.
  5. 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:

  1. 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)
    
  2. Exclua o perfil de rede:

    az network profile delete --ids $NetworkProfile --yes
    
  3. Exclua a sub-rede:

    az network vnet subnet delete --resource-group $RES_GROUP --vnet-name $VNET_NAME --name $SUBNET_NAME
    
  4. 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:

  1. Obtenha a ID do perfil de rede:

    NETWORK_PROFILE_ID=$(az network profile list --resource-group <resource-group-name> --query [0].id --output tsv)
    
  2. Atualize o perfil de rede:

    az resource update --ids $NETWORK_PROFILE_ID --set properties.containerNetworkInterfaceConfigurations=[]
    
  3. 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.