[Airflow] [kubernetes_pod_operator] TypeError:“ NoneType”类型的参数不可迭代

时间:2019-11-25 22:20:49

标签: docker kubernetes containers etl airflow

当我尝试运行此任务时,出现以下错误:

from airflow.contrib.operators.kubernetes_pod_operator import KubernetesPodOperator 
from airflow import DAG
from datetime import datetime, timedelta

default_args = {
    "owner": "airflow",
    "depends_on_past": False,
    "start_date": datetime(2015, 6, 1),
    "email": ["airflow@airflow.com"],
    "email_on_failure": False,
    "email_on_retry": False,
    "retries": 1,
    "retry_delay": timedelta(minutes=5),
}

dag = DAG("kubernetes", default_args=default_args, schedule_interval=None)

k = KubernetesPodOperator(
    namespace='kubernetes',
    image="ubuntu:16.04",
    cmds=["bash", "-cx"],
    arguments=["echo", "10", "echo pwd"],
    labels={"foo": "bar"},
    name="airflow-test-pod",
    is_delete_pod_operator=True,
    in_cluster=True,
    task_id="task-two",
    get_logs=True,
    dag=dag)

错误:

  File "/usr/local/lib/python3.7/site-packages/kubernetes/config/kube_config.py", line 491, in safe_get
    key in self.value):
TypeError: argument of type 'NoneType' is not iterable

我在做什么错?我正在使用puckel / airflow和正确的依赖项。 <https://github.com/puckel/docker-airflow> 我需要在airflow.cfg中进行编辑吗?我不知道在哪里搜索。

1 个答案:

答案 0 :(得分:1)

似乎您没有设置config_file参数,因此KubernetesPodOperator会恢复为默认值,该默认值也可能不存在。

我的建议是添加“ config_file = / path / to / kube_config.yaml”。 在以下文件中,您还将提供您的凭据/令牌。