You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新VMSS中运行的Linux虚拟机镜像时触发Azure镜像构建(azure-arm)报错:无法删除托管镜像

解决VMSS关联时无法删除托管镜像的问题

这个错误完全在预期之内——Azure会阻止删除仍被Virtual Machine Scale Set(VMSS)依赖的托管镜像,毕竟VMSS的实例需要依赖镜像来启动或更新,直接删除会导致服务异常。下面是具体的解决步骤:

第一步:确认VMSS当前的镜像关联

先通过Azure CLI确认你的VMSS到底是不是还在引用那个无法删除的镜像:

az vmss show --resource-group <你的资源组名称> --name <你的VMSS名称> --query 'virtualMachineProfile.storageProfile.imageReference'

执行后会返回当前VMSS使用的镜像详情,确认是不是你要删除的那个镜像ID。

第二步:更新VMSS的镜像引用,解除依赖

接下来需要让VMSS不再指向这个旧镜像,分两种场景处理:

场景1:你要把VMSS升级到新的自定义镜像

如果你的目标是更新VMSS到新镜像,直接用下面的命令替换VMSS的镜像引用:

az vmss update --resource-group <资源组名称> --name <VMSS名称> --set virtualMachineProfile.storageProfile.imageReference.id=<新托管镜像的资源ID>

替换完成后,需要把VMSS的所有实例升级到新镜像配置:

az vmss update-instances --resource-group <资源组名称> --name <VMSS名称> --instance-ids '*'

等所有实例升级完成后,旧镜像就不再被VMSS依赖了。

场景2:你只是想删除旧镜像,不需要更新VMSS

如果VMSS原本是基于市场镜像创建的,只是之前临时关联了自定义镜像,你可以把VMSS改回使用市场镜像,比如Ubuntu 22.04:

az vmss update --resource-group <资源组名称> --name <VMSS名称> \
  --set virtualMachineProfile.storageProfile.imageReference.publisher=Canonical \
  --set virtualMachineProfile.storageProfile.imageReference.offer=0001-com-ubuntu-server-jammy \
  --set virtualMachineProfile.storageProfile.imageReference.sku=22_04-lts \
  --set virtualMachineProfile.storageProfile.imageReference.version=latest

同样,执行完后要升级所有实例让配置生效。

第三步:删除托管镜像

等VMSS的镜像引用更新完成,并且所有实例都升级到新配置后,就可以正常删除旧镜像了:

az image delete --resource-group <资源组名称> --name <要删除的镜像名称>

如果还是提示无法删除,建议检查一下是否有其他VM或VMSS也在使用这个镜像,可以通过Azure门户的镜像详情页面查看"依赖项"来确认。

内容的提问来源于stack exchange,提问作者Ashu_FalcoN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 04:57:33