apache airflow 中的 Kubernetes Executor:Pod 立即被删除并出现错误

use*_*900 2 kubernetes airflow

我正在将 apache airflow 与 KubernetesExecutor 一起使用。我正在 Minikube 中运行设置,该设置工作正常,这意味着每当 DAG 触发时,它都会为标签中的每个任务生成 pod,并在任务完成后删除 pod。

我在测试 Kubernetes env 中也有同样的情况,但是当我在那里触发 DAG 时,它会为 DAG 中的第一个任务创建 pod,并且该 pod 会立即从状态中删除,例如 ContainerCreating -> Running -> Completed -> Error -> Termination。Airflow UI 的该任务日志为空,因此无法检查导致问题的原因,并且其余相关任务会自动失败。

这是我正在使用的环境变量

AIRFLOW__CELERY__CELERY_CONCURRENCY:
1
AIRFLOW__CELERY__FLOWER_URL_PREFIX:
AIRFLOW__CELERY__WORKER_CONCURRENCY:
1
AIRFLOW__CODE__ENABLE_XCOM_PICKLING:
false
AIRFLOW__CORE__CATCHUP_BY_DEFAULT:
false
AIRFLOW__CORE__DAGS_ARE_PAUSED_AT_CREATION:
false
AIRFLOW__CORE__DAGS_FOLDER:
/usr/local/airflow/dags
AIRFLOW__CORE__DONOT_PICKLE:
false
AIRFLOW__CORE__EXECUTOR:
KubernetesExecutor
AIRFLOW__CORE__EXPOSE_CONFIG:
true
AIRFLOW__KUBERNETES__DAGS_VOLUME_CLAIM:
airflow-dags
AIRFLOW__KUBERNETES__LOGS_VOLUME_CLAIM:
airflow-logs
AIRFLOW__KUBERNETES__NAMESPACE:
cap
AIRFLOW__KUBERNETES__WORKER_CONTAINER_REPOSITORY:
repo/airflow-latest
AIRFLOW__KUBERNETES__WORKER_CONTAINER_TAG:
latest
AIRFLOW__KUBERNETES__WORKER_PODS_CREATION_BATCH_SIZE:
9
AIRFLOW__WEBSERVER__BASE_URL:
http://localhost:8080
DO_WAIT_INITDB:
false
FERNET_KEY:
FLOWER_PORT:
5555
POSTGRES_DB:
airflow
POSTGRES_HOST:
airflow-postgresql
POSTGRES_PORT:
5432
REDIS_HOST:
airflow-redis-master
REDIS_PORT:

Run Code Online (Sandbox Code Playgroud)

use*_*416 5

您可以添加“ AIRFLOW__KUBERNETES__DELETE_WORKER_PODS: false”环境变量并检查 pod 日志