Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Airflow 什么';在Kubernetes上调度任务的这些方法之间有什么区别?_Airflow - Fatal编程技术网

Airflow 什么';在Kubernetes上调度任务的这些方法之间有什么区别?

Airflow 什么';在Kubernetes上调度任务的这些方法之间有什么区别?,airflow,Airflow,我在Kubernetes吊舱上遇到了几种不同的安排气流任务的方法,但我还没有弄清楚它们之间的区别,以及何时我应该更喜欢一种样式而不是另一种样式 在上下文中,我的本地气流测试实例被配置为使用kubernetesecutor,我正在本地Kubernetes集群上调度这些任务 第一种风格(坦白地说,我没想到这会奏效——是什么 是否用作基础图像?) 第二种风格。我遇到了这个 第三种风格是通过KubernetesPodOperator这似乎是最灵活的(您可以指定任何带有任何参数的容器),所以这可能是唯一的

我在Kubernetes吊舱上遇到了几种不同的安排气流任务的方法,但我还没有弄清楚它们之间的区别,以及何时我应该更喜欢一种样式而不是另一种样式

在上下文中,我的本地气流测试实例被配置为使用
kubernetesecutor
,我正在本地Kubernetes集群上调度这些任务

  • 第一种风格(坦白地说,我没想到这会奏效——是什么 是否用作基础图像?)
  • 第二种风格。我遇到了这个
  • 第三种风格是通过
    KubernetesPodOperator
    这似乎是最灵活的(您可以指定任何带有任何参数的容器),所以这可能是唯一的优势?然而,假设我只是调用bash脚本或python脚本,那么这与方法1或2(使用bash操作符或PythonOperator)有什么区别吗
  • KubernetesPodOperator
    适用于使用非kubernetes执行器,并且希望在kubernetes上运行映像的情况
  • 如果您选择使用
    KuberneteSecutor
    ,那么像
    BashOperator
    PythonOperator
    这样的操作符将被安排在Kubernetes上(尽管如果您没有指定,则不清楚它们使用的是什么图像)
  • KubernetesPodOperator
    适用于使用非kubernetes执行器,并且希望在kubernetes上运行映像的情况
  • 如果您选择使用
    KuberneteSecutor
    ,那么像
    BashOperator
    PythonOperator
    这样的操作符将被安排在Kubernetes上(尽管如果您没有指定,则不清楚它们使用的是什么图像)
    dag = DAG('ex1', default_args=default_args, schedule_interval=None)
    
    # Single Operator DAG
    BashOperator(
        task_id='print_date',
        bash_command='date',
        dag=dag)
    
    dag = DAG('ex2', default_args=default_args, schedule_interval=None)
    
    # Why do you need to specify the executor when the executor is already configured via airflow.cfg?
    BashOperator(
        task_id='print_date',
        bash_command='date',
        dag=dag,
        executor_config={"KubernetesExecutor": {"image": "ubuntu:1604"}})
    
    dag = DAG('ex3', default_args=default_args, schedule_interval=None)
    
    KubernetesPodOperator(namespace='default',
                              image="ubuntu:1604",
                              cmds=["/bin/bash","-c"],
                              arguments=["echo hello world"],
                              labels={"foo": "bar"},
                              name="EchoInAUbuntuContainer",
                              task_id="testUbuntuEcho",
                              get_logs=True,
                              dag=dag)