我们的k8s集群上的Pod是通过Airflow
的{{1}}进行调度的,而KubernetesExecutor
在新Pod中运行。
我有一个Task
,它的豆荚立即(在1或2秒后)崩溃,并且我当然想查看它的日志。
这似乎很难。 Pod崩溃后,它将被删除,并具有检索崩溃日志的功能。我已经尝试了所有方法:
Task
:无法使用,因为这些吊舱是唯一命名的
(由kubectl logs -f <pod> -p
提供)。 KubernetesExecutor
:我
难以将标签粘贴到吊舱上(如果这是一种已知的/常用的工作方式,我很乐意进一步尝试)kubectl logs -l label_name=label_value
安装在固定日志目录的所有pod上。但是,发生故障的Pod不会登录到该文件夹。nfs
dag_id kubectl logs -f -l dag_id=sample_dag --all-containers (
Airflow label is added by
,请参阅)
。这可能会给我一些线索,但是:
我基本上是在寻找从暂挂容器中检索日志的规范方法
答案 0 :(得分:1)
您需要启用远程日志记录。下面的代码示例用于使用S3。在airflow.cfg
中设置以下内容:
remote_logging = True
remote_log_conn_id = my_s3_conn
remote_base_log_folder = s3://airflow/logs
my_s3_conn
可以在airflow> Admin> Connections中设置。在Conn Type
下拉列表中,选择S3
。