求助:AWS VPC内K8s部署Airflow后Ingress反向代理配置问题
解决Airflow在Ingress子路径下静态资源404的问题
这是Airflow部署在反向代理子路径下的典型问题——Airflow默认不知道自己运行在/airflow前缀下,所以生成的静态资源URL都是根路径,导致Ingress找不到这些资源。结合你的Helm部署和Nginx Ingress环境,咱们可以通过配置Airflow识别子路径+调整Ingress传递正确的代理头部来解决:
1. 更新Airflow的Helm配置,让它知道子路径
因为你用的是Helm stable/airflow 7.1.1,需要在values文件里添加Airflow的反向代理和子路径相关配置,让Airflow生成带/airflow前缀的静态资源URL:
airflow: webserver: # 设置Airflow web界面的基础路径为/airflow baseUrl: /airflow extraEnv: # 开启代理修复,信任反向代理的头部信息 - name: AIRFLOW__WEBSERVER__ENABLE_PROXY_FIX value: "true" # 让Airflow读取X-Forwarded-Prefix头部来生成正确的路径 - name: AIRFLOW__WEBSERVER__PROXY_FIX_X_FORDED_PREFIX value: "true"
应用这个配置更新Airflow:
helm upgrade airflow-dev stable/airflow -n dev -f your-custom-values.yaml
2. 调整Ingress配置,传递前缀头部并修正规则
你的现有Ingress已经有rewrite规则,但缺少传递X-Forwarded-Prefix的配置,这是Airflow识别子路径的关键。修改后的Ingress配置如下:
apiVersion: extensions/v1beta1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/connection-proxy-header: upgrade nginx.ingress.kubernetes.io/rewrite-target: /$2 # 添加配置片段,传递X-Forwarded-Prefix头部给Airflow nginx.ingress.kubernetes.io/configuration-snippet: | proxy_set_header X-Forwarded-Prefix /airflow; # 确保正则路径规则生效 nginx.ingress.kubernetes.io/use-regex: "true" labels: app.kubernetes.io/instance: airflow-dev-web app.kubernetes.io/managed-by: Tiller app.kubernetes.io/name: airflow-dev-web app.kubernetes.io/version: "1.0" helm.sh/chart: web-service-0.1.0 name: airflow namespace: dev spec: rules: - host: public.host.com http: paths: - backend: serviceName: airflow-dev-web servicePort: 8080 path: /airflow(/|$)(.*)
应用Ingress更新:
kubectl apply -f your-ingress.yaml -n dev
3. 验证效果
等待Airflow webserver重启完成后,访问https://public.host.com/airflow/admin,打开浏览器开发者工具查看静态资源的请求URL,应该都变成了https://public.host.com/airflow/admin/...这样带前缀的路径,不会再返回404了。
原理说明:
- Airflow的
ENABLE_PROXY_FIX和PROXY_FIX_X_FORDED_PREFIX配置让它信任Nginx传递的X-Forwarded-Prefix头部,从而在生成静态资源URL时自动加上/airflow前缀。 - Ingress的
configuration-snippet负责把这个前缀头部传递给Airflow容器,确保双方信息一致。
内容的提问来源于stack exchange,提问作者Cunuu Kum
相关产品推荐
相关产品推荐

