Поделиться томом в KubernetesPodOperator? - PullRequest
0 голосов
/ 22 февраля 2019

Я использую изображение докера ffmpeg из KubernetesPodOperator () внутри Airflow для извлечения кадров из видео.

Работает нормально, но я не могу получить сохраненные кадры: как можно сохранитькадры, сгенерированные Pod непосредственно в мою файловую систему (хост-машину)?

Обновление:

С https://airflow.apache.org/kubernetes.html# Мне кажется, я понял, что янужно работать с параметрами volume_mount, volume_config и volume, но все равно не повезло.

Сообщение об ошибке:

"message":"Not found: \"test-volume\"","field":"spec.containers[0].volumeMounts[0].name"

PV и PVC:

Команда kubectl get pv,pvc test-volume дает:

NAME                           CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                 STORAGECLASS   REASON   AGE
persistentvolume/test-volume   10Gi       RWO            Retain           Bound    default/test-volume   manual                  3m

NAME                                STATUS   VOLUME        CAPACITY   ACCESS MODES   STORAGECLASS   AGE
persistentvolumeclaim/test-volume   Bound    test-volume   10Gi       RWO            manual         3m

Код:

volume_mount = VolumeMount('test-volume',
                           mount_path='/',
                           sub_path=None,
                           read_only=False)

volume_config= {
    'persistentVolumeClaim':
    {
        'claimName': 'test-volume' # uses the persistentVolumeClaim given in the Kube yaml
    }
}

volume = Volume(name="test-volume", configs=volume_config)



with DAG('test_kubernetes',
         default_args=default_args,
         schedule_interval=schedule_interval,
         ) as dag:

        extract_frames = KubernetesPodOperator(namespace='default',
                                  image="jrottenberg/ffmpeg:3.4-scratch",
                                  arguments=[                                    
                                    "-i", "http://www.jell.yfish.us/media/jellyfish-20-mbps-hd-hevc-10bit.mkv",                                    
                                    "test_%04d.jpg"
                                    ],                                  
                                  name="extract-frames",
                                  task_id="extract_frames",
                                  volume=[volume],
                                  volume_mounts=[volume_mount],
                                  get_logs=True
                                  )

1 Ответ

0 голосов
/ 06 марта 2019

Вот некоторые предположения о том, что может быть неправильным:

  1. (Откуда ваша ошибка, скорее всего, исходит) KubernetesPodOperator ожидает параметр«громкость с », а не «громкость»

  2. В общем случае монтировать на «/» плохая практика, так как вы будете удалять все, что находится на образеты бежишь.т. е. вам, вероятно, следует изменить "mount_path" в вашем объекте VolumeMount на что-то еще, например "/ selected_frames"

...