托管式 Airflow(第 3 代) | 托管式 Airflow(第 2 代) | 托管式 Airflow(旧版第 1 代)
本页介绍了托管式 Airflow 环境的架构。
环境架构配置
托管式 Airflow(第 3 代)环境具有单一配置,该配置不取决于网络类型:
客户和租户项目
当您创建环境时,Managed Airflow 会在租户和客户项目之间分配环境的资源:
客户项目是您在其中创建 Google Cloud 环境的项目。您可以在一个客户项目中创建多个环境。
租户项目是由 Google 管理的租户项目,并且 属于 Google.com 组织。租户项目可为您的环境提供统一的访问权限控制和额外一层数据安全保护。每个托管式 Airflow 环境都有自己的租户项目。
环境组件
托管式 Airflow 环境由环境组件组成。
环境组件是作为环境的一部分在 Google Cloud 上运行的代管式 Airflow 基础架构的一个元素。环境组件是代管式 Airflow 基础架构的一个元素 在其中运行 Google Cloud,作为环境的一部分。环境组件在环境的租户或客户项目中运行。
环境存储桶
环境存储桶是一个Cloud Storage 存储桶 ,用于存储 DAG、插件、数据依赖项和 Airflow 日志。环境存储桶位于客户项目中。
当您 上传 DAG 文件 到环境存储桶中的 /dags 文件夹时,Managed Airflow 会将 DAG 同步到环境的 Airflow 组件。
Airflow Web 服务器
Airflow Web 服务器会运行您环境的 Airflow 界面。
托管式 Airflow 会根据用户身份和为用户定义的 IAM 政策绑定提供对界面的访问权限。
Airflow 数据库
Airflow 数据库是您的环境的租户项目中运行的 Cloud SQL 实例。它托管 Airflow 元数据数据库。
为了保护敏感连接和工作流信息, Managed Airflow 只允许对 环境的 服务账号进行数据库访问。
其他 Airflow 组件
在您的环境中运行的其他 Airflow 组件包括:
Airflow 调度器会解析 DAG 定义文件,根据时间表间隔安排 DAG 运行,并将任务排队以待 Airflow 工作器执行。
Airflow 触发器会异步监控环境中的所有延迟任务。 如果您将环境中的触发器数量设置为大于 零,则可以在 DAG 中使用 可延期运算符。
Airflow DAG 处理器会处理 DAG 文件并将其转换为 DAG 对象。 在托管式 Airflow(第 3 代)中,DAG 处理器作为单独的环境组件运行。
Airflow 工作器执行由 Airflow 调度器安排的任务。 环境中工作器的数量下限和上限会根据队列中的任务数量动态变化。
托管式 Airflow(第 3 代)环境架构
在 Managed Airflow(第 3 代)环境中:
- 租户项目托管包含 Airflow 数据库的 Cloud SQL 实例。
- 所有 Airflow 资源都在租户项目中运行。
- 客户项目托管环境的存储桶。
- 客户项目中的自定义 VPC 网络连接可用于将环境连接到自定义 VPC 网络。您可以使用现有连接,也可以让 Managed Airflow 根据需要自动创建连接。此外,您还可以将环境与 VPC 网络分离。
- Google Cloud 客户项目中的控制台、Monitoring 和 Logging 提供了管理环境、DAG 和 DAG 运行作业以及访问环境的指标和日志的方法。您还可以使用 Airflow 界面、Google Cloud CLI、Cloud Composer API 和 Terraform 来实现相同的目的。
在具有高恢复能力的托管式 Airflow(第 3 代)环境中:
环境的 Cloud SQL 实例配置为高可用性(是区域实例)。在区域实例中,该配置由主实例和备用实例组成。
您的环境在不同的可用区中运行以下 Airflow 组件:
- 两个 Airflow 调度器
- 两个 Web 服务器
- 至少两个 DAG 处理器(最多 10 个)
如果使用触发器,则至少两个触发器(最多 10 个)
工作器的数量下限设置为 2,环境的集群会在可用区之间分配工作器实例。如果发生可用区中断,受影响的工作器实例会在其他可用区中重新安排。
与 Cloud Logging 和 Cloud Monitoring 集成
托管式 Airflow 集成了您的 Google Cloud 项目的 Cloud Logging 和 Cloud Monitoring,因此您可以集中查看 Airflow 和 DAG 日志。
Cloud Monitoring 会从 Managed Airflow 中收集并提取指标、事件和元数据,并通过信息中心和图表生成分析洞见。
得益于 Cloud Logging 的流式传输特性,您可以立即查看由 Airflow 组件发出的日志,而无需等待 Airflow 日志显示在环境的 Cloud Storage 存储桶中。
如需限制项目中的日志数,您可以停止所有日志提取。 Google Cloud 请勿停用 Logging。