Azure Container Instances에서 사용하는 가상 네트워크 또는 서브넷을 삭제하지 못했습니다.
이 문서에서는 ACI(Azure Container Instances)에서 사용하는 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에서 서브넷으로 이동합니다.
서브넷 위임을 None으로 변경합니다.
서브넷에 연결된 네트워크 프로필이 없는지 확인하려면 명령을 사용하여
az network profile delete
네트워크 프로필을 삭제합니다.3단계의 명령이 실패하면 네트워크 프로필이 남아 있을 수 있습니다. 느린 네트워크 프로필을 삭제하려면 다음 명령을 사용합니다.
az network profile delete --id resourceIdOfNetworkProfile
네트워크 프로필이 여전히 서브넷 업데이트를 차단하는 경우 서브넷 위임을 None으로 다시 설정해 봅니다.
이전 단계가 도움이 되지 않는 경우 버전 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 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.