Airflow 2.3.4中KubernetesPodOperator报'request_cpu'参数异常
问题排查与解决方案:Airflow DAG报错
Resources.__init__() got an unexpected keyword argument 'request_cpu' 原因分析
- 核心问题是你在
KubernetesPodOperator中同时传入了resources和container_resources两个参数。 resources是Airflow基础Operator(BaseOperator)的通用参数,对应的Resources类仅支持cpu、ram、disk这类通用资源字段,无法识别request_cpu/limit_cpu这类Kubernetes专属的资源参数,因此初始化时触发类型错误。- 其他DAG能正常运行,是因为它们仅使用
container_resources定义K8s资源,没有错误传入resources参数。
解决方案
直接删除KubernetesPodOperator中的resources=compute_resources参数,仅保留container_resources=compute_resources即可。container_resources是KubernetesPodOperator专门用于配置Pod容器CPU/内存请求与限制的参数,完全匹配你定义的compute_resources结构。
修改后的代码片段:
my_task = KubernetesPodOperator( namespace="airflow", image=DAG_IMAGE, image_pull_secrets=[k8s.V1LocalObjectReference("docker-registry")], container_resources=compute_resources, env_vars={ "AWS_ACCESS_KEY_ID": creds["access_key"], "AWS_SECRET_ACCESS_KEY": creds["secret_access_key"], "EXECUTION_DATE": "{{ execution_date }}", }, cmds=["python3", "my_project.py"], is_delete_operator_pod=True, in_cluster=False, name="my-project-name", task_id="my-task", config_file=os.path.expanduser("~") + "/.kube/config", get_logs=True, )
内容的提问来源于stack exchange,提问作者The Dan
相关产品推荐
相关产品推荐

