通过Arc配置AKS后Azure Machine Learning训练作业排队无法调度求助
Azure ML Arc AKS预览版作业调度阻塞问题解决方案
根因说明
- 预览版调度逻辑存在硬编码的缓冲校验规则:调度器在匹配资源时,默认会要求作业申请资源的1.2倍不大于节点可分配资源,你收到的提示中显示可用内存为4.46GB,你申请的4GB内存乘以1.2倍后为4.8GB,已经超出可用值,因此直接触发调度阻塞,这就是资源数值看起来足够但无法调度的核心原因。
- 提示中展示的可用资源为节点总可分配资源,不是实时剩余资源:如果集群存在未清理的僵尸作业Pod、系统组件临时占用额外资源,实际可调度的资源会比展示值更低。
- 切换更小规格后仍报错的原因是AML侧缓存了旧的节点资源校验规则,没有同步更新匹配逻辑。
修复步骤
- 方案1(临时绕过校验):调整作业内存申请值到3.5GB以下,vCPU保持1vCPU即可;如果通过CLI/SDK提交作业,可以在作业定义的资源配置段添加
allow_reserved_resources_overlap: true参数,直接跳过1.2倍缓冲校验。 - 方案2(集群侧调整):登录Azure Portal找到对应的Arc AKS集群,将节点池的实例规格升级到至少2vCPU/8GB内存,等待5分钟待AML扩展同步节点信息后重新提交作业。
- 方案3(清理残留资源):登录AKS集群执行
kubectl describe nodes查看节点实时剩余资源,如果存在azureml命名空间下的异常残留Pod,执行kubectl delete pods <pod名称> -n azureml清理后重试。 - 方案4(重置计算绑定):在AML Studio中删除当前绑定的Arc AKS计算目标,重新绑定过程中关闭「专用调度」选项,绑定完成后缓存的校验规则会自动重置,即可正常提交作业。
内容的提问来源于stack exchange,提问作者user1371314
相关产品推荐
相关产品推荐

