Не удалось удалить виртуальную сеть или подсеть, используемые Экземпляры контейнеров Azure

В этой статье рассматриваются ошибки, возникающие при удалении виртуальной сети (VNet) или подсети, используемой Экземпляры контейнеров Azure (ACI), и приводятся обходные решения.

Симптомы

  • При удалении подсети, используемой 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, возникает следующая ошибка:

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

Делегирование подсети, необходимое для ACI, должно ссылаться на остаточный канал связи служб, который предотвращает удаление виртуальной сети или подсети, используемой ACI.

  1. Перейдите к подсети в портал Azure.

  2. Измените делегирование подсети на Нет.

  3. Удалите сетевые az network profile delete профили с помощью команды , чтобы убедиться, что сетевые профили не связаны с подсетью.

  4. Если команда на шаге 3 завершается ошибкой, может возникнуть затяжной сетевой профиль. Чтобы удалить затяжной сетевой профиль, используйте следующую команду:

    az network profile delete --id resourceIdOfNetworkProfile
    
  5. Если сетевые профили по-прежнему блокируют обновление подсети, попробуйте еще раз задать для делегирования подсети значение Нет .

  6. Если предыдущие шаги не помогли, попробуйте удалить ссылку связи служб через Azure CLI, используя указанную версию API, например версию 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
    

Причина 2. Сетевые профили блокируют удаление виртуальной сети или подсети

При удалении группы контейнеров сетевой профиль, созданный ACI во время создания группы контейнеров, может быть удален неправильно. Это приводит к тому, что в виртуальной сети или подсети останется что-то, что блокирует определенные операции удаления.

Решение 1. Удаление сетевого профиля группы контейнеров из портал Azure

После удаления всех групп контейнеров ACI выполните следующие действия.

  1. Перейдите в группу ресурсов.
  2. Выберите Показать скрытые типы. По умолчанию сетевые профили скрыты в портал Azure.
  3. Выберите сетевой профиль, связанный с группой контейнеров.
  4. Выберите Удалить.
  5. Удалите виртуальную сеть или подсеть.

Решение 2. Удаление сетевого профиля группы контейнеров с помощью Azure CLI

После удаления всех групп контейнеров ACI выполните следующие действия.

  1. Получите идентификатор сетевого профиля:

    NetworkProfile=$(az network vnet subnet show -g $RES_GROUP --vnet-name $VNET_NAME --name $SUBNET_NAME -o tsv --query ipConfigurationProfiles[].id)
    
  2. Удалите сетевой профиль:

    az network profile delete --ids $NetworkProfile --yes
    
  3. Удалите подсеть:

    az network vnet subnet delete --resource-group $RES_GROUP --vnet-name $VNET_NAME --name $SUBNET_NAME
    
  4. Удалите виртуальную сеть:

    az network vnet delete --resource-group $RES_GROUP --name $SUBNET_NAME
    

Решение 3. Обновление свойства containerNetworkInterfaceConfigurations с помощью Azure CLI

Если удаление сетевого профиля через портал Azure и Azure CLI завершается ошибкой, обновите свойство containerNetworkInterfaceConfigurations сетевого профиля до пустого списка:

  1. Получите идентификатор сетевого профиля:

    NETWORK_PROFILE_ID=$(az network profile list --resource-group <resource-group-name> --query [0].id --output tsv)
    
  2. Обновите сетевой профиль:

    az resource update --ids $NETWORK_PROFILE_ID --set properties.containerNetworkInterfaceConfigurations=[]
    
  3. Удалите сетевой профиль и подсеть.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.