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

官方Airflow Helm Chart的Scheduler Deployment无法应用podAffinity问题求助

问题根因与解决方案

导致该问题的核心原因是Airflow 1.1.0版本官方Helm Chart的Scheduler Deployment默认内置了Pod反亲和规则,与你新增的Pod亲和规则产生了冲突。

1. 冲突原因说明

该版本Chart的Scheduler默认配置了强制反亲和规则,禁止同一节点上运行多个带有component: scheduler标签的Pod,规则如下:

podAntiAffinity:
  requiredDuringSchedulingIgnoredDuringExecution:
  - labelSelector:
      matchExpressions:
      - key: component
        operator: In
        values:
        - scheduler
    topologyKey: kubernetes.io/hostname

而Webserver Deployment默认没有这类内置反亲和规则,所以相同的亲和配置可以在Webserver上正常生效。当你要求Scheduler必须调度到PostgreSQL所在节点时,如果该节点已经存在Scheduler Pod,或者规则合并后出现逻辑冲突,就会触发调度失败的报错。

2. 解决方案

在你的Helm values.yaml中显式覆盖Scheduler的默认反亲和配置,将你的亲和规则与自定义反亲和规则(根据实际需求设置)合并即可,单实例Scheduler场景可以直接清空反亲和配置:

scheduler:
  affinity:
    podAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchExpressions:
          - key: app 
            operator: In
            values:
            - postgresql
        topologyKey: "kubernetes.io/hostname"
    # 单实例Scheduler可直接清空反亲和配置
    podAntiAffinity: {}

3. 验证方法

配置更新后执行以下命令查看渲染后的实际affinity规则,确认是否符合预期:

kubectl get deployment <你的scheduler-deployment名称> -o yaml | grep -A 20 affinity:

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:24:07