Чтобы глубже исследовать проблему в контейнере Airflow GKE время выполнения , я бы порекомендовал вызвать команду gcloud composer environments run
, переключаясь на debug
уровень выходной детализации.
gcloud composer environments run myenv --location us-central1 --project myproject --verbosity=debug backfill -- -s 2020-10-05T10:30 -e 2020-10-05T10:30 -x -I mydag
Команда print out может дать возможность получить отладочные записи, исследуя записи с kubectl
составами командной строки:
ОТЛАДКА: Выполнение команды: [u '/ google / google-cloud- sdk / bin / kubectl ', u' - пространство имен ', u' composer -1-8-3-airflow-1-10-3-xxxxxx ', u'exe c', u'airflow-worker -xxxxxxxx ', u'-ti c', u'airflow-worker ', u'airflow', u'backfill ', u' - ', u'-s', u'2020-10-05T10: 30 ', u'-e', u'2020-10-05T10: 30 ', u'-x', u'-I ', u'test_dag']
Приведенный выше вывод отражает способ, которым gcloud
разъединяет аргументы командной строки, отправляя их kubectl
наследнику команд. Далее, вы можете вручную составить kubectl
вызов команды для конкретного Pod рабочего потока Airflow, основываясь на следующих параметрах:
kubectl --namespace composer-1-8-3-airflow-1-10-3-xxxxxx exec airflow-worker-xxxxxxxx -tic airflow-worker airflow backfill -- -s 2020-10-05T10:30 -e 2020-10-05T10:30 -x -I test_dag
После разговора с комментариями, в котором упоминалось, что вы могли выполнить обратную засыпку Airflow Команда через kubectl
успешно вызывает вызов, могу предположить, что проблема может быть связана с неверными аргументами, полученными из gcloud
предшественником kubectl
.
Вы даже можете попытаться заменить -s
, -e
позиционные аргументы с --start_date
и --end_date
соответственно, из-за того, что по какой-то неизвестной причине вложенная среда выполнения GKE OCI распознала -s
как файл выполнения в сообщении об ошибке.