Airflow Pod仅调度至单个K8s节点问题排查求助(非基础亲和性问题)
Airflow KubernetesExecutor Pod调度异常问题
环境信息
- microk8s集群搭配Ceph存储,由1个控制节点 + 3个配置一致的数据/处理节点组成
- 通过Helm Chart部署Airflow,采用KubernetesExecutor
- 已为相关Pod配置合理的亲和性规则与资源限制,且配置在集群中验证正常,排除基础亲和性配置错误
核心问题
- Airflow处理Pod仅能被调度至data03节点,该节点不可用时完全无法调度;后续发现所有Airflow关联Pod均存在此绑定问题,例如Postgres Pod仅固定调度至data02节点,原节点故障后无法切换至其他节点
- 当data03节点资源耗尽时,创建过多处理Pod会触发调度报错:
0/4 nodes are available: 1 node(s) insufficient cpou. preemption: 0/4 nodes are available: 1 Preemption is not helpful for scheduling, 3 No preemption victims found for incoming pod.
此时另外两个数据节点基本处于空闲状态,可承载多个Pod,但Pod始终不会被调度到这些节点
- 手动隔离data03节点后,无处理Pod能被调度,报错如下:
0/4 nodes are available: 1 node(s) were unschedulable. preemption: 0/4 nodes are available: 1 Preemption is not helpful for scheduling, 3 No preemption victims found for incoming pod.
明明无需抢占资源却触发了抢占逻辑
数据节点资源情况(三个节点配置一致,Ceph运行正常)
Capacity: cpu: 8 ephemeral-storage: 256920004Ki hugepages-1Gi: 0 hugepages-2Mi: 0 memory: 32589584Ki pods: 110 Allocatable: cpu: 8 ephemeral-storage: 255871428Ki hugepages-1Gi: 0 hugepages-2Mi: 0 memory: 32487184Ki pods: 110
当前排查状态
已尝试调整多种亲和性、反亲和性规则及资源限制配置,仍无法解决Pod被限制在单个节点的问题,无法定位根因。
内容的提问来源于stack exchange,提问作者einarhg
相关产品推荐
相关产品推荐

