Azure Kubernetes中部署的Airflow如何对外暴露REST API接口
Airflow API跨网络访问可行配置方案
以下是适配Azure Kubernetes(AKS)环境、基于官方Airflow Helm Chart的三种可落地配置方向:
方案1:调整Webserver Service类型(快速验证场景)
默认官方Chart的Airflow Webserver Service为ClusterIP类型,仅支持集群内部访问,修改配置即可直接对外暴露:
- 在自定义
values.yaml中添加如下配置:
webserver: service: # 改为LoadBalancer类型后AKS会自动分配公网IP type: LoadBalancer # 可选:配置固定公网IP,需提前在AKS同资源组创建静态公网IP # loadBalancerIP: "你的静态公网IP地址" # 可选:配置访问源IP白名单,避免公网全量暴露 # loadBalancerSourceRanges: # - "10.0.0.0/24" # 替换为允许访问的业务网段
- 执行配置更新命令生效:
helm upgrade airflow apache-airflow/airflow -f 你的自定义values.yaml路径 -n airflow命名空间 - 生效后通过AKS分配的LoadBalancer公网IP+8080端口即可访问API。
方案2:通过Ingress暴露(生产环境推荐)
生产环境建议通过Ingress统一管理流量入口,提前确认集群已部署Ingress Controller(如Nginx Ingress):
- 在自定义
values.yaml中添加如下Ingress配置:
ingress: enabled: true ingressClassName: "nginx" # 替换为你的集群Ingress Class名称 web: host: "airflow.你的业务域名.com" # 替换为要绑定的访问域名 tls: enabled: true secretName: "airflow-tls-cert" # 替换为存储SSL证书的Secret名称
- 执行helm upgrade命令更新配置,将域名解析到Ingress Controller的公网IP后,即可通过域名访问Airflow UI和API。
- 额外安全配置支持:可在Ingress层配置IP白名单、身份认证中间件,进一步提升API安全性。
方案3:私网VPC暴露(无公网需求场景)
如果API调用方仅在Azure同VPC/对等VPC内部,可配置内网LoadBalancer避免公网暴露:
- 在自定义
values.yaml中添加如下配置:
webserver: service: type: LoadBalancer annotations: service.beta.kubernetes.io/azure-load-balancer-internal: "true" # 可选:指定内网IP所属的子网 # service.beta.kubernetes.io/azure-load-balancer-internal-subnet: "你的子网名称"
- 生效后AKS会生成VPC内的私网负载均衡IP,同VPC内的所有服务均可通过该IP访问API。
通用注意事项
- 所有暴露场景均建议保留Airflow默认的RBAC API认证,调用API时携带合规的Authorization请求头,不要随意关闭认证配置。
- 公网暴露场景必须配置访问源限制,避免未授权访问风险。
内容的提问来源于stack exchange,提问作者adan11
相关产品推荐
相关产品推荐

