You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

官方Airflow Helm Chart+KubernetesExecutor环境下日志发送至S3的配置问题

Airflow Helm Chart(KubernetesExecutor)配置S3远程日志完整步骤

前置操作

在Airflow部署的命名空间下创建存储S3凭证的Secret:

kubectl create secret generic airflow-s3-log-secret \
  --from-literal=AWS_ACCESS_KEY_ID=你的S3访问密钥ID \
  --from-literal=AWS_SECRET_ACCESS_KEY=你的S3访问密钥 \
  -n airflow

调整values.yaml配置

1. 注入全局环境变量

所有Airflow组件(WebServer、Scheduler、Worker)都需要读取S3相关配置,在values.yaml中新增env段:

env:
  - name: AWS_ACCESS_KEY_ID
    valueFrom:
      secretKeyRef:
        name: airflow-s3-log-secret
        key: AWS_ACCESS_KEY_ID
  - name: AWS_SECRET_ACCESS_KEY
    valueFrom:
      secretKeyRef:
        name: airflow-s3-log-secret
        key: AWS_SECRET_ACCESS_KEY
  - name: S3_LOG_BASE_PATH
    value: s3://<你的S3存储桶名称>/airflow/logs/
  - name: AWS_DEFAULT_REGION
    value: <你的S3存储桶所在区域,比如cn-north-1>

2. 覆盖Airflow核心日志配置

在values.yaml的config段修改日志相关参数,开启远程日志:

config:
  logging:
    # 开启远程日志写入
    remote_logging: 'True'
    # 远程日志存储根路径
    remote_base_log_folder: '{{ .Values.env.S3_LOG_BASE_PATH }}'
    # 关联的AWS连接ID
    remote_log_conn_id: 'aws_default'
    # 可选:日志上传到S3后删除本地副本,节省节点存储
    delete_local_logs: 'True'
  # 若使用S3兼容存储(如本地MinIO),新增以下s3段配置
  # s3:
  #   endpoint_url: http://<你的MinIO服务地址>:9000
  #   use_ssl: 'False'
  #   verify: 'False'

3. 预配置AWS连接(可选)

如果不想后续在Airflow WebUI手动创建aws_default连接,可以直接在values.yaml中预注入连接配置:

airflow:
  connections:
    - conn_id: aws_default
      conn_type: aws
      extra: |
        {
          "aws_access_key_id": "{{ .Values.env.AWS_ACCESS_KEY_ID }}",
          "aws_secret_access_key": "{{ .Values.env.AWS_SECRET_ACCESS_KEY }}",
          "region_name": "{{ .Values.env.AWS_DEFAULT_REGION }}"
        }

生效配置

执行Helm升级命令使配置生效:

helm upgrade --install airflow apache-airflow/airflow -f values.yaml -n airflow

验证

任意触发一次测试DAG运行,执行完成后即可在S3存储桶的对应路径下看到按DAG ID、任务ID、执行时间分层存储的日志文件,Airflow WebUI可直接读取S3中的日志内容展示,无需额外适配。

注意事项

  • 本地KinD集群测试若使用MinIO替代公有云S3,需确保Airflow所有Pod可访问到MinIO服务地址,根据实际情况调整s3配置段的endpoint、SSL校验参数即可。
  • 所用S3凭证需要至少拥有对应存储桶的s3:PutObject、s3:GetObject、s3:ListBucket权限,否则会出现日志写入/读取失败的问题。

内容的提问来源于stack exchange,提问作者Jorge Nachtigall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:45:05