AKS部署Airflow 2.9.3日志获取失败及远程日志配置无效求助
AKS部署Airflow 2.9.3日志问题排查方案
一、解决Worker Pod名称解析失败问题
- 检查集群DNS组件状态:执行
kubectl get pods -n kube-system | grep dns,确认coredns Pod处于Running状态。若有异常,重启DNS组件:kubectl rollout restart deployment coredns -n kube-system - 验证Pod内部DNS解析:进入Airflow Webserver Pod,执行
nslookup <worker-pod-name>.<airflow-namespace>.pod.cluster.local,检查是否能正常解析Worker Pod的域名。若解析失败,确认Worker Pod的dnsPolicy配置为默认的ClusterFirst(可通过kubectl describe pod <worker-pod-name> -n <airflow-namespace>查看) - 核对Airflow Worker主机名配置:检查Helm values.yaml中的
config.worker.hostname_callable,确保未自定义非默认值,默认值为airflow.utils.net.get_hostname,自定义配置可能导致域名解析异常
二、排查ADLS Gen2远程日志未写入问题
- 确认Helm日志配置正确性:检查values.yaml中以下配置项,确保层级和参数正确:
config: logging: remoteLogging: true remoteBaseLogFolder: abfs://<container-name>@<storage-account>.dfs.core.windows.net/airflow-logs remoteLogConnId: adlsgen2 logging_task_log_reader: remote - 验证服务账号权限:虽然Web端连接测试成功,仍需确认Airflow Worker和Webserver Pod使用的AKS服务账号,是否拥有ADLS Gen2容器的Storage Blob Data Contributor权限,或连接使用的SAS密钥/账户密钥具备写入权限
- 查看Pod运行日志:分别查看Webserver和Worker Pod的日志,搜索
remote_log、abfs关键词,排查是否存在连接超时、权限拒绝等错误:kubectl logs <webserver-pod> -n <airflow-namespace> kubectl logs <worker-pod> -n <airflow-namespace> - 确认Helm部署生效:执行
helm get values <airflow-release-name> -n <airflow-namespace>,核对日志配置是否已正确应用。若配置未生效,重新执行部署命令:helm upgrade <airflow-release-name> apache-airflow/airflow -n <airflow-namespace> -f values.yaml - 检查ADLS Gen2路径有效性:确认
remoteBaseLogFolder中的容器已创建,存储账户名、容器名无拼写错误,且路径使用ADLS Gen2专属的abfs://协议 - 验证Airflow配置文件加载:进入Webserver Pod,查看
/opt/airflow/airflow.cfg中的日志配置项,确认与values.yaml中的配置完全一致,若不一致需检查Helm配置层级是否正确
内容的提问来源于stack exchange,提问作者Abhijit
相关产品推荐
相关产品推荐

