通过KubernetesPodOperator在GKE气流中的安装量问题

时间:2020-03-31 12:07:04

标签: google-cloud-platform airflow google-kubernetes-engine directed-acyclic-graphs

我的DAG在堆栈驱动程序中停留在运行状态,并显示一条日志消息“有一个待定类型的事件”。我的DAG在没有卷挂载的情况下可以正常工作,但是看起来好像有卷挂载的问题。你能请人帮忙吗?

我正在尝试将“ / data / storage”路径安装到容器中“ / storage”位置。

from airflow import DAG
from airflow.contrib.operators.kubernetes_pod_operator import KubernetesPodOperator
from airflow.contrib.kubernetes.volume import Volume
from airflow.contrib.kubernetes.volume_mount import VolumeMount
from datetime import timedelta
default_args = {
                    'owner': '',
                    'start_date': '2020-03-31 03:40:34',
                    'depend_on_past': False,
                    'email_on_failure': False,
                    'email_on_retry': False,
                    'retries': 0,
                    'retry_delay': timedelta(minutes=5)
                    } 
volume_mount = VolumeMount('test-volume',
                            mount_path='/data/storage',
                            sub_path='storage',
                            read_only=True)
volume_config= {
    'persistentVolumeClaim':
      {
        'claimName': 'test-volume'
      }
    }
volume = Volume(name='test-volume', configs=volume_config)
dag = DAG('dag-name', default_args=default_args, schedule_interval=None, catchup=False, concurrency=1, max_active_runs=1)
task1 = KubernetesPodOperator(
                                    # The ID specified for the task.
                                    task_id='task1',
                                    # Name of task you want to run, used to generate Pod ID.
                                    name='task1',
                                    namespace='default',
                                    env_vars={'var1': 'value1'},
                                    image='someimage',
                                    volumes=[volume],
                                    volume_mounts=[volume_mount],
                                    arguments=['arg.json'],
                                    startup_timeout_seconds=3600,
                                    image_pull_policy='Always',
                                    dag=dag)

2 个答案:

答案 0 :(得分:1)

您看过这个post吗?首先,您需要创建一个persistent volume,然后使用卷和卷安装来更新DAG。这是full example

答案 1 :(得分:0)

因为您已经定义了mount_path='/data/storage',所以我认为没有必要添加sub_path='storage'。我们可以在here提供的文档字符串以及here提供的示例中看到它。