管理日志

在管理 Airflow 日志时,您有多种选择。

无持久性

通过此选项,Airflow 会将日志记录到每个 Pod 的本地。因此,日志只在 Pod 的生命周期内可用。

helm upgrade --install airflow apache-airflow/airflow \
  --set logs.persistence.enabled=false
  # --set workers.persistence.enabled=false (also needed if using ``CeleryExecutor``)

Celery 工作节点日志持久性

如果您使用 CeleryExecutor,工作节点默认会将日志持久化到使用 volumeClaimTemplate 创建的卷声明中。

您可以修改模板

helm upgrade --install airflow apache-airflow/airflow \
  --set executor=CeleryExecutor \
  --set workers.persistence.size=10Gi

请注意,此选项仅持久化任务日志,不像启用日志持久性时也会持久化调度程序日志。

日志持久性已启用

此选项将提供一个访问模式为 ReadWriteManyPersistentVolumeClaim。然后 Airflow 的每个组件都将日志记录到同一卷上。

并非所有卷插件都支持 ReadWriteMany 访问模式。有关详细信息,请参阅 持久卷访问模式

helm upgrade --install airflow apache-airflow/airflow \
  --set logs.persistence.enabled=true
  # you can also override the other persistence
  # by setting the logs.persistence.* values
  # Please refer to values.yaml for details

外部预置的 PVC

在这种方法中,Airflow 会将日志记录到一个现有的 ReadWriteMany PVC 中。您需要将卷声明的名称传递给 chart。

helm upgrade --install airflow apache-airflow/airflow \
  --set logs.persistence.enabled=true \
  --set logs.persistence.existingClaim=my-volume-claim

请注意,该卷需要可由 Airflow 用户写入。最简单的方法是确保 GID 0 具有写入权限。更多信息可以在 Docker 镜像入口点文档中找到。

Elasticsearch

如果您的集群将日志转发到 Elasticsearch,您可以配置 Airflow 从中检索任务日志。有关详细信息,请参阅 Elasticsearch 提供程序指南

helm upgrade --install airflow apache-airflow/airflow \
  --set elasticsearch.enabled=true \
  --set elasticsearch.secretName=my-es-secret
  # Other choices exist. Please refer to values.yaml for details.

此条目有帮助吗?