Кубернетс, созданный с помощью Airflow, остается в рабочем состоянии. - PullRequest
0 голосов
/ 27 января 2019

Я настроил Airflow в кластере Kubernetes.Для запуска задач я использую KubernetesPodOperator.

Когда я запускаю задачу и смотрю на kubectl get pods, я вижу, что модуль создан правильно, и он также завершается.Тем не менее, когда я смотрю на Airflow, я вижу, что состояние не обновляется и оно говорит, что оно все еще находится в рабочем состоянии.

[2019-01-27 12:43:56,580] {models.py:1595} INFO - Executing <Task(KubernetesPodOperator): xxx> on 2019-01-20T00:00:00+00:00
[2019-01-27 12:43:56,581] {base_task_runner.py:118} INFO - Running: ['bash', '-c', 'airflow run xxx xxx 2019-01-20T00:00:00+00:00 --job_id 15 --raw -sd DAGS_FOLDER/xxx.py --cfg_path /tmp/tmpxx39wldz']
[2019-01-27 12:45:21,603] {models.py:1355} INFO - Dependencies not met for <TaskInstance: xxx.xxx 2019-01-20T00:00:00+00:00 [running]>, dependency 'Task Instance Not Already Running' FAILED: Task is already running, it started on 2019-01-27 12:43:56.565328+00:00.
[2019-01-27 12:45:21,639] {models.py:1355} INFO - Dependencies not met for <TaskInstance: xxx.xxx 2019-01-20T00:00:00+00:00 [running]>, dependency 'Task Instance State' FAILED: Task is in the 'running' state which is not a valid state for execution. The task must be cleared in order to be run.
[2019-01-27 12:45:21,641] {logging_mixin.py:95} INFO - [2019-01-27 12:45:21,641] {jobs.py:2614} INFO - Task is not able to be run

Есть ли что-то конкретное, что я должен сделать, чтобы вернуть состояние модуля обратно в Airflow?KubernetesPodOperator определяется следующим образом:

do_something = KubernetesPodOperator(
    task_id='xxx',
    image='gcr.io/project/image',
    namespace='default',
    name='xxx',
    arguments=['dummy'],
    xcom_push=True,
    in_cluster=True,
    image_pull_policy='Always',
    trigger_rule='dummy',
    dag=dag,
)

Редактировать: Похоже, что базовый контейнер завершен, но airflow-xcom-sidecar все еще работает.Что-нибудь конкретное, что я должен сделать, чтобы остановить это?

1 Ответ

0 голосов
/ 28 января 2019

Трудно сказать точно, не глядя на ваши настройки, но похоже, что модуль готов, и он пытается xcom протолкнуть ваш основной поток воздуха, и он не может подключиться.Я бы проверил логи на airflow-xcom-sidecar.Примерно так:

$ kubectl logs <airflow-job-pod> -c airflow-xcom-sidecar

Вы также можете попробовать запустить KubernetesOperator с xcom_push=False:

do_something = KubernetesPodOperator(
    task_id='xxx',
    image='gcr.io/project/image',
    namespace='default',
    name='xxx',
    arguments=['dummy'],
    xcom_push=False,
    in_cluster=True,
    image_pull_policy='Always',
    trigger_rule='dummy',
    dag=dag,
)
...