环境架构

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

本页介绍了 Cloud Composer 环境的架构。

环境架构配置

Cloud Composer 2 环境可以具有以下架构配置:

客户和租户项目

当您创建环境时,Cloud Composer 会将 在租户和客户项目之间定义环境中的资源:

  • 客户项目是您在其中创建环境的 Google Cloud 项目。您可以在一个客户项目中创建多个环境。

租户项目是由 Google 管理的租户项目。 租户项目可为您的环境提供统一的访问权限控制和额外一层数据安全保护。每个 Cloud Composer 具有自己的租户项目。

环境组件

Cloud Composer 环境由环境组件组成。

环境组件是代管式 Airflow 基础架构的一个元素 作为您的环境的一部分。环境组件在环境的租户或客户项目中运行。

环境的集群

环境的集群是环境的 Autopilot 模式 VPC 原生 Google Kubernetes Engine 集群:

默认情况下,Cloud Composer 支持节点自动升级节点自动修复,以保护您的环境的集群免受安全漏洞的影响。这些 所有操作都发生在您为 环境

环境存储桶

环境存储桶是一个 Cloud Storage 存储桶,用于存储 DAG、插件、数据依赖项和 Airflow 日志。环境的 存储桶位于客户项目中。

当您将 DAG 文件上传到环境存储桶中的 /dags 文件夹时,Cloud Composer 会将 DAG 同步到您环境的 Airflow 组件。

Airflow Web 服务器

Airflow Web 服务器会运行您环境的 Airflow 界面。

Cloud Composer 会根据为用户定义的用户身份和 IAM 政策绑定来提供对该界面的访问权限。

Airflow 数据库

Airflow 数据库是您的环境的租户项目中运行的 Cloud SQL 实例。它托管 Airflow 元数据数据库。

为了保护敏感连接和工作流信息,Cloud Composer 只允许对环境的服务账号进行数据库访问。

其他 Airflow 组件

在您的环境中运行的其他 Airflow 组件包括:

  • Airflow 调度器解析 DAG 定义文件,安排 DAG 运行 根据计划间隔安排任务,并将任务排队等待 Airflow 工作器。 在 Cloud Composer 2 中 Airflow DAG 处理器作为调度器组件的一部分运行。

  • Airflow 触发器会异步监控环境中的所有推迟任务。如果您在上述环境中设置了触发器数量 则您可以使用 DAG 中可延期运算符

  • Airflow 工作器执行由 Airflow 调度器安排的任务。 环境中的工作器数量下限和上限会动态变化,具体取决于队列中的任务数量。

公共 IP 环境架构

租户项目和客户项目中的公共 IP Cloud Composer 环境资源
图 1. 公共 IP 环境架构(点击放大)

在 Cloud Composer 2 的公共 IP 环境架构中:

  • 租户项目托管 Cloud SQL 实例和 Cloud SQL 存储空间。
  • 客户项目托管环境的所有其他组件。
  • 客户项目中的 Airflow 调度器和工作器通过客户项目中的 Cloud SQL 代理实例与 Airflow 数据库通信。

专用 IP 环境架构

租户项目和客户项目中具有 PSC Cloud Composer 环境资源的专用 IP(点击可放大)
图 2. 租户项目和客户项目中的专用 IP Cloud Composer 环境资源(点击可放大)

默认情况下,Cloud Composer 2 使用 Private Service Connect,因此您的专用 IP 环境可以在不使用 VPC 对等互连的情况下进行内部通信。您还可以使用 VPC 对等互连,而不是 在您的环境中使用 Private Service Connect。这是一个非默认选项。

在专用 IP 环境架构中:

  • 租户项目托管 Cloud SQL 实例和 Cloud SQL 存储空间。
  • 客户项目托管环境的所有其他组件。
  • Airflow 调度器和工作器通过 配置的 PSC 端点

高度弹性的专用 IP 架构

租户项目和客户项目中的高弹性专用 IP 环境资源(点击可放大)
图 3. 租户项目和客户项目中的高弹性专用 IP Cloud Composer 环境资源(点击可放大)

高弹性 Cloud Composer 环境是 Cloud Composer 2 使用内置冗余和故障切换机制的环境, 环境容易受到可用区级故障和单点故障的影响 服务中断。

在这种专用 IP 环境中:

  • 您的环境的 Cloud SQL 实例已配置为高 可用性(属于区域级实例)。在单区域实例中, 配置由主实例和备用实例组成。
  • 您的环境运行两个 Airflow 调度器、两个 Web 服务器 如果使用了触发器,则至少需要 2 个(最多 10 个)触发器。 这两个组件对在两个单独的区域中运行。
  • 工作器数量下限设为 2,并且环境的集群会在可用可用区之间分配工作器实例。如果发生可用区中断,系统会在其他可用区重新调度受影响的工作器实例。

与 Cloud Logging 和 Cloud Monitoring 集成

Cloud Composer 集成了 Cloud Logging Google Cloud 项目的 Cloud Monitoring, 用于查看 Airflow 和 DAG 日志的中心位置。

Cloud Monitoring 会从 Cloud Composer 中收集并提取指标、事件和元数据,并通过信息中心和图表生成数据分析

由于 Cloud Logging 的流式传输特性,您可以立即查看由 Airflow 组件发出的日志,而无需等待 Airflow 日志显示在您环境的 Cloud Storage 存储桶中。

如需限制 Google Cloud 项目中的日志数量,您可以停止所有日志提取。请勿停用 Logging。

后续步骤