如何在不影响运行中VM的前提下删除Azure VM Scale Set关联公网IP
无需停机删除VM Scale Set关联的公共IP操作步骤
前提说明
通过AZ CLI创建的VMSS默认关联的公共IP,实际绑定在负载均衡器(LB)的前端IP配置上,LB的NAT规则或VMSS的后端池关联可能导致无法直接删除,以下操作可在不中断VM运行的前提下完成删除:
1. 获取VMSS关联的负载均衡器信息
执行命令提取LB的资源组和名称:
az vmss show --resource-group <你的资源组名称> --name <VMSS名称> --query 'virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].ipConfigurations[0].loadBalancerBackendAddressPools[0].id' -o tsv
返回格式类似 /subscriptions/xxx/resourceGroups/<资源组名>/providers/Microsoft.Network/loadBalancers/<LB名称>/backendAddressPools/<池名称>,从中提取资源组名和LB名称。
2. 清理LB关联的NAT规则(若存在)
如果LB有入站NAT规则关联前端IP,需先删除:
# 先列出所有NAT规则 az network lb inbound-nat-rule list --resource-group <资源组名> --lb-name <LB名称> -o table # 删除每个关联的NAT规则 az network lb inbound-nat-rule delete --resource-group <资源组名> --lb-name <LB名称> --name <NAT规则名称>
3. 解绑VMSS与LB后端池的关联
执行命令移除VMSS网卡配置中的LB后端池绑定:
az vmss update --resource-group <资源组名> --name <VMSS名称> --remove virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].ipConfigurations[0].loadBalancerBackendAddressPools
该操作会滚动更新VMSS实例的网卡配置,不会导致VM停机。
4. 修改LB前端IP配置,移除公共IP关联
若仍需保留LB用于内部访问,将LB前端IP改为使用私有IP:
az network lb frontend-ip update --resource-group <资源组名> --lb-name <LB名称> --name loadBalancerFrontEnd --subnet <子网名称或ID>
若不再需要LB,可直接删除LB:
az network lb delete --resource-group <资源组名> --name <LB名称>
5. 删除目标公共IP
先获取公共IP名称:
az network public-ip list --resource-group <资源组名> -o table
找到目标公共IP后执行删除:
az network public-ip delete --resource-group <资源组名> --name <公共IP名称>
内容的提问来源于stack exchange,提问作者mohammad azhar shaik
相关产品推荐
相关产品推荐

