Kubernetes:查看崩溃的Airflow工作人员吊舱的日志

时间:2020-02-12 12:50:52

标签: kubernetes airflow

我们的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,请参阅) 。这可能会给我一些线索,但是:
    • 这些只是最后的日志行
    • 这真的倒退了

我基本上是在寻找从暂挂容器中检索日志的规范方法

1 个答案:

答案 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