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

使用Kubernetes Executor时Airflow Scheduler启动失败及SSL问题求助

解决Airflow Scheduler启动的JSON解码错误及KubernetesJobWatcher SSL问题

我来帮你一步步排查并解决这两个困扰你的Airflow部署问题:

一、先搞定JSONDecodeError:Helm values.yaml的配置坑

你遇到的第一个json.decoder.JSONDecodeError,本质是YAML的解析特性导致的。Airflow的KUBE_CLIENT_REQUEST_ARGS要求接收一个JSON格式的字符串,但你直接在values.yaml里写字典{"_request_timeout" : [60,60] }时,YAML会自动把它解析成Python字典对象,而不是原样传递字符串给Airflow。这就导致Airflow尝试解析一个非JSON格式的内容,自然报错。

正确的values.yaml写法:

把这个配置值用单引号包裹,强制YAML将其识别为完整的字符串:

airflow:
  config:
    AIRFLOW__KUBERNETES__KUBE_CLIENT_REQUEST_ARGS: '{"_request_timeout": [60, 60]}'

这样Helm就会把这个JSON字符串原封不动地传给Pod的环境变量,Airflow就能正确解析了——这也是你在Dockerfile里直接设置ENV能成功的原因,因为Dockerfile里的单引号确保了它是字符串格式。

二、再解决OpenSSL.SSL.WantReadError问题

这个错误是KubernetesJobWatcher在和K8s API服务器建立SSL连接时,出现了读取超时或连接不稳定的情况。结合你的场景,可以尝试以下几个方案:

1. 优化请求超时参数

你已经设置了_request_timeout,可以尝试延长超时时间,比如调整为[120, 120](连接超时120秒,读取超时120秒),同时确保用第一部分的字符串格式配置。

2. 检查ServiceAccount权限与SSL证书

  • 确认你的airflow ServiceAccount有足够的权限访问K8s API,特别是读取Pod、Job这类资源的权限。可以用kubectl auth can-i get pods --as=system:serviceaccount:airflow:airflow命令验证权限。
  • 如果你的K8s集群用的是自签名SSL证书,需要确保证书已经挂载到Airflow Pod的信任目录中。如果是测试环境,也可以临时禁用SSL验证(生产环境不推荐):
    airflow:
      config:
        AIRFLOW__KUBERNETES__KUBE_CLIENT_VERIFY: 'false'
    

3. 升级Kubernetes Python客户端版本

Airflow 1.10.8默认的Kubernetes客户端版本可能存在SSL相关的bug。你可以在自定义Dockerfile中升级到兼容的版本:

RUN pip install --upgrade kubernetes==10.0.1

(10.0.1是经过验证和Airflow 1.10.8兼容的版本,避免升级到过高版本导致兼容性问题)

4. 增加Watcher的重试机制

Airflow的KubernetesJobWatcher默认的重试逻辑可能不够,你可以添加以下配置让它在连接失败时自动重试:

airflow:
  config:
    AIRFLOW__KUBERNETES__WATCHER_CONNECTION_RETRY_COUNT: 5
    AIRFLOW__KUBERNETES__WATCHER_CONNECTION_RETRY_DELAY: 10

这会让Watcher在连接失败时重试5次,每次间隔10秒,提升连接稳定性。

总结

先通过修正values.yaml中环境变量的字符串格式解决JSON解码错误,再通过调整超时、权限、客户端版本或重试机制来解决SSL读取问题。如果问题还存在,建议查看Scheduler的完整日志,找一找有没有更具体的连接错误提示,方便进一步排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 16:12:47