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

Azure DevOps AKS持续部署管道卡在Job is pending无日志故障

AKS上Azure DevOps持续部署管道卡在「Job is pending...」无日志排查方案

Job is pending... 部署故障截图

灰色(X)图标+完全无运行日志的故障,本质是作业根本没调度到执行代理上,不用浪费时间排查管道YAML里的业务部署步骤,按以下优先级排查即可:

1. 优先排查代理池状态(这类问题90%的根因在这)

  • 先确认管道绑定的代理池类型:如果是部署在AKS上的自托管代理池,先进入AzDO「组织设置-代理池」找到对应池,查看在线代理数量:
    • 若在线代理数为0:直接进AKS集群执行kubectl get pods -n <代理部署的命名空间>查代理Pod状态
      • Pod处于Pending状态:执行kubectl describe pod <代理Pod名称> -n <命名空间>看Events字段,常见原因是AKS节点CPU/内存资源不足无法调度、PVC存储卷绑定失败、节点配置了污点但代理Pod没加对应容忍
      • Pod处于CrashLoopBackOff/Error状态:执行kubectl logs <代理Pod名称> -n <命名空间> --previous查上一次崩溃的日志,常见原因是代理注册用的PAT令牌过期、代理版本和AzDO服务端版本不兼容、代理配置的组织URL/池ID填写错误
    • 若有在线代理但作业仍排队:查看代理池的并发作业槽位是不是被僵死作业占满,进入代理池的「作业」标签页,把所有卡了数小时的无响应旧作业取消释放槽位
  • 若用的是微软托管代理池,先查组织级的并发作业配额是不是耗尽,私有项目默认只有1个免费微软托管并发槽,占满后新作业会一直排队。

2. 排查作业调度拦截规则

  • 检查作业的「能力需求(Demands)」配置:如果作业配置了特殊匹配规则(比如指定代理名称、要求代理预装特定软件),现有在线代理都不满足匹配条件时,作业会一直处于待调度状态,不会触发执行
  • 检查部署阶段的审批/检查规则:如果绑定了AKS环境的部署阶段配置了人工审批、分支合规检查、部署时间窗口限制,卡在审批等待环节时也会显示Job pending,直接进入对应环境的「检查」面板查看未处理的拦截请求,不要只盯着作业日志页
  • 若用AzDO的Kubernetes环境资源直连AKS部署,进入「管道-环境」找到对应AKS环境,检查集群服务连接是不是失效,常见原因是AKS集群的服务账号令牌过期、AzDO服务主体的RBAC权限被回收。

3. AKS集群侧异常排查

  • 执行kubectl get nodes确认所有集群节点处于Ready状态,再执行kubectl get pods -n kube-system确认coreDNS、CNI网络插件等核心组件运行正常,集群网络断连时,跑在AKS上的自托管代理无法和AzDO服务端建立长连接,会出现代理显示在线但实际无法接收作业的假在线状态。

4. 快速定位验证技巧

  • 临时把作业的代理池切到微软托管池(比如ubuntu-latest),跑一行最简单的echo "test"命令:如果能正常执行,说明问题完全出在自托管AKS代理/集群连接侧,和管道业务逻辑无关;如果切微软池也卡,直接查看对应区域的AzDO服务健康状态,服务端故障时会出现全量作业排队无响应的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 17:33:40