Cloud Composer 版本控制概览

本页面介绍了 Cloud Composer 版本控制,并列出了主要 Cloud Composer 版本之间的区别。

Cloud Composer 的主要版本

Cloud Composer 有以下主要版本:

  • Cloud Composer 1。具有手动环境伸缩功能,基础架构部署到您的项目和网络。
  • Cloud Composer 2。在此版本中,环境的集群会自动扩缩以满足资源需求。
  • Cloud Composer 3。此版本简化了网络设置,并隐藏了基础架构组件,包括环境的集群和环境对其他服务的依赖关系。

Cloud Composer 版本比较

下表列出了 Cloud Composer 1、Cloud Composer 2 和 Cloud Composer 3 之间的主要区别。

功能 Cloud Composer 1 Cloud Composer 2 Cloud Composer 3
映像版本 composer-1.b.c-airflow-x.y.z composer-2.b.c-airflow-x.y.z composer-3-airflow-x.y.z-build.t
Airflow 版本 Airflow 1.10.* 和 Airflow 2 Airflow 2 Airflow 2
Python 版本 3.8.12 3.11.8(早期版本为 3.11.5 和 3.8.12) 3.11.8
环境的集群 标准模式 VPC 原生或基于路由的 Google Kubernetes Engine 集群 Autopilot 模式 VPC 原生 Google Kubernetes Engine 集群 环境的集群未部署到您的项目中。
横向扩缩 可以调整环境集群中的节点数量。 此操作会更改 Airflow 工作器的数量。
可以调整 Airflow 调度器的数量。
根据需求自动伸缩 Airflow 工作器数量。可以设置和更改工作器数量的上限和下限。
可以调整 Airflow 调度器和触发器的数量
根据需求自动伸缩 Airflow 工作器数量。可以设置和更改工作器数量的上限和下限。
可以调整 Airflow 调度器、触发器和 DAG 处理器的数量
纵向扩缩 可以在创建环境时为集群节点、Airflow Web 服务器和数据库设置机器类型。可以更改 Airflow Web 服务器和数据库的机器类型。 可以设置和更改工作负载配置:Airflow 工作器、调度器、Web 服务器和环境大小的 CPU、内存和存储参数。 可以设置和更改工作负载配置:Airflow 工作器、调度器、Web 服务器、DAG 处理器和环境大小的 CPU、内存和存储参数。
定价模式 Cloud Composer 1 价格模式 Cloud Composer 2 价格模式 Cloud Composer 3 价格模式
访问权限控制 Cloud Composer 1 角色 Cloud Composer 角色。使用适用于 GKE 的工作负载身份联合,并且需要 Cloud Composer Service Agent 账号的额外权限。 Cloud Composer 角色。使用 Workload Identity Federation for GKE。无需额外权限
通过员工身份联合进行访问 不支持 支持 支持
高弹性环境 不支持 支持 尚未提供
数据库保留政策 不支持 尚未提供 支持
专用 IP 网络 VPC 对等互连 Private Service Connect 简化了网络设置。可以在现有环境中在公共 IP 和专用 IP 之间更改。
VPC Service Controls 支持 支持 支持
Airflow 执行器 Celery 执行程序 Celery 执行程序 CeleryKubernetes 执行程序
Airflow 触发器(可延期运算符) 不支持 支持 支持
KubernetesPodOperator 的自定义服务账号 支持 支持 不支持
CMEK 支持 支持 支持
Web 服务器访问权限控制 支持 支持 支持
重启 Web 服务器 支持 支持 支持
Web 服务器插件 在已停用 DAG 序列化的 Airflow 1 环境中受支持。 支持 支持,插件可以根据需要停用和启用。
调度器插件 不支持 支持 不支持
调度器自定义 PyPI 软件包 不支持 支持 不支持
安装自定义插件 支持 支持 支持
维护操作 所有任务都可能会受到影响。 执行时间少于 55 分钟的任务不受影响。 执行时间不到 24 小时的任务不受影响。
存储快照 支持 Airflow 2.x 和 1.10.15 版本 支持 支持
加载快照 不支持 支持 支持
预定的快照 不支持 支持 支持
自定义环境的存储桶 不支持 支持 支持
仅在 Cloud Logging 中保存 Airflow 任务日志 不支持 支持 支持
数据沿袭集成 不支持 支持 支持
Composer 本地开发 CLI 工具 不支持 支持 支持

Cloud Composer 映像

为了运行 Apache Airflow,Cloud Composer 会构建 Docker 映像,用于将 Airflow 版本与其他常用的二进制文件和 Python 库捆绑在一起。

Cloud Composer 映像包含专门针对 Cloud Composer,但不适用于上游 Airflow 代码库的 Airflow 修改。每个 Cloud Composer 映像都包含预安装的软件包以及专门针对 Cloud Composer 的 Airflow 更改。

Google 会定期发布新的 Cloud Composer 映像

  • 在 Cloud Composer 3 中,映像包含受支持的 Airflow 版本的新 build。您可以选择要使用的 Airflow 版本和 build。您的环境会自动获得 Cloud Composer 改进。

  • 在 Cloud Composer 2 和 Cloud Composer 1 中,映像包含 Cloud Composer 改进和受支持的 Airflow 版本的新 build。如需获得 Cloud Composer 改进,您可以将环境升级到更高版本的 Cloud Composer。

版本弃用和支持

Composer 3

Google 会在 Airflow build 发布后的一段时间内提供支持:

  • 自发布日期起 0-12 个月:运行此 Airflow build 的 Cloud Composer 3 环境受支持。

  • 自发布日期起 12 个月以上:运行这些版本的 Cloud Composer 3 环境不受支持。

    当某个 Airflow build 不再受支持时,运行该 Airflow build 的环境也不再受支持,并且完全由用户管理。

环境以以下方式与支持和不支持的 Airflow build 协同工作:

  • 您可以创建使用所有受支持的 Airflow build 的环境。

  • 您仍然可以使用不再受支持的 Airflow build 的环境。环境仍可正常运行,您可以继续使用,也可以将其升级受支持的 Airflow build

  • 在某些情况下,升级到更高版本的 Airflow 或 build 是解决安全漏洞的唯一可用解决方案。

Composer 2

Google 会在 Cloud Composer 2 版本发布后的一段时间内支持这些版本:

  • 自发布日期起 0-12 个月:运行这些版本的 Cloud Composer 2 环境受支持。

  • 自发布日期起 12 个月以上:运行这些版本的 Cloud Composer 2 环境不受支持。

您可以在 Cloud Composer 版本不再受支持的日期之后使用它们。例如,如果您的环境基于超过支持期的 Cloud Composer 版本,那么该环境仍会正常运行,且您可以继续使用。在这种情况下,我们建议您将环境升级受支持的版本

Composer 1

新的 Cloud Composer 1 版本已于 2023 年 3 月底发布。所有已发布的 Cloud Composer 1 版本都遵循与 Cloud Composer 2 相同的版本弃用政策,并因此受到支持。

Airflow 版本支持

Airflow 遵循语义软件版本控制架构。Airflow 的每个版本都有一个主要版本、次要版本和补丁程序版本。

Composer 3

在 Cloud Composer 3 中,随着时间的推移,将有新的 Airflow 版本和 build 可供使用。

您的环境可以与所有之前的 Airflow 版本和 build 搭配使用,并且会自动接收基础设施组件的更新。每个版本和 build 均受支持,如版本弃用和支持中所述,您可以选择将 Airflow 版本升级到更高版本或 build。

Composer 2

如需查看每个 Cloud Composer 版本支持的 Airflow 版本列表,请参阅 Cloud Composer 版本列表

  • 在每个发布版本中,Cloud Composer 2 都支持 Airflow 2 的两个次要版本

    例如,Cloud Composer 2.4.0 支持 Airflow 2.4.* 和 Airflow 2.5.*。

  • 对于 Airflow 2 的每个次要版本,Cloud Composer 支持一个补丁程序版本

    例如,对于 Airflow 2.4.*,Cloud Composer 支持 Airflow 2.4.3。

  • 当 Cloud Composer 中提供新的 Airflow 2 补丁程序版本时,相应的版本会有两个 Airflow 2 补丁程序版本可用于 Airflow 的同一次要版本。然后,之前的补丁程序版本会在以后的某个版本中被移除。

    例如,Cloud Composer 2.3.4 同时支持 Airflow 2.5.1 和 Airflow 2.5.3。

  • Cloud Composer 可以在 Cloud Composer 各发布版本之间跳过一些 Airflow 补丁程序版本。此外,如果 Airflow 的特定补丁程序版本存在功能、质量或性能问题,Cloud Composer 也可以跳过此版本。

    例如,跳过了 Airflow 2.1.3,可以使用 Airflow 2.1.4。

  • 运行稳定版 Airflow 的 Cloud Composer 版本可以包含从更高的 Airflow 版本向后移植的 Airflow 更新。

Composer 1

Cloud Composer 1 支持的最新 Airflow 版本是 Airflow 2.4.3。

只有 Cloud Composer 1 支持 Airflow 1.10.15,这是 Airflow 1 最新发布的版本。

Cloud Composer 版本架构

Composer 3

Cloud Composer 3 版本控制架构会捕获 Airflow 版本和 build:

composer-3-airflow-x.y.z-build.t

其中:

  • composer-3 是 Cloud Composer 的主要版本。

  • airflow-x.y.z.build.t 是 Airflow 版本和 build。 Cloud Composer 3 中同一 Airflow 版本的每个后续版本都具有更高的 build 编号。build 编号由 Cloud Composer 定义,而不是由 Airflow 开源项目定义。

Composer 2

Cloud Composer 2 映像版本控制架构会捕获 Cloud Composer 和 Airflow 版本:

composer-2.b.c-airflow-x.y.z

其中:

  • composer-2.b.c 表示 Cloud Composer 2 中 Cloud Composer 管理的自定义设置的次要版本和补丁版本。一般来说,与之前的次要版本相比,Cloud Composer 的次要版本对应于功能方面的重大变化,例如当可用的 Airflow 版本集发生变化时。补丁版本会在后续版本中更新。

  • airflow-x.y.z 是 Airflow 版本,表示特定 Cloud Composer 映像中使用的 Airflow 的主要版本、次要版本和补丁版本。

Composer 1

Cloud Composer 1 映像版本控制架构会捕获 Cloud Composer 和 Airflow 版本:

composer-1.b.c-airflow-x.y.z

其中:

  • composer-1.b.c 是 Cloud Composer 管理的自定义设置的版本
  • airflow-x.y.z 是 Airflow 版本

版本别名

版本别名的运作方式如下:

  • Cloud Composer 在创建环境时会将版本别名解析为完整格式:

    • 在 Cloud Composer 3 中,所有版本别名都将变为 composer-3-airflow-x.y.z-build.t
    • 所有版本别名在 Cloud Composer 2 和 Cloud Composer 1 中都变为 composer-a.b.c-airflow-x.y.z
  • 在 Cloud Composer 3 中,使用版本别名(例如 composer-3-airflow-x.y不会自动升级环境的 Airflow 版本和 build。在您升级环境之前,环境会一直使用相同的 Airflow build 和版本。与往常一样,该环境仍会接收自动基础设施升级。

  • 在 Cloud Composer 2 和 Cloud Composer 1 中,使用版本别名(例如 composer-a-airflow-x.y.z不会为环境提供自动升级。在您升级环境之前,环境会一直使用相同的 Cloud Composer 和 Airflow 版本。

Cloud Composer 3 版本别名

Cloud Composer 3 支持以下版本别名:

别名 Airflow 版本
composer-3-airflow-2 Airflow 2 的最新版本和 build
composer-3-airflow-x.y x.y 主要版本和次要版本中的最新 Airflow 版本和 build
composer-3-airflow-x.y.z 指定 Airflow 版本的最新 build

Cloud Composer 2 版本别名

Cloud Composer 2 支持以下版本别名:

别名 Cloud Composer 版本 Airflow 版本
composer-2-airflow-2 Cloud Composer 2 的最新版本 最新版本的 Airflow 2
composer-2-airflow-x.y Cloud Composer 2 的最新版本 x.y 主要版本和次要版本中的最新 Airflow 版本
composer-2-airflow-x.y.z Cloud Composer 2 的最新版本 指定版本的 Airflow
composer-2.b.c-airflow-x.y Cloud Composer 2 的指定版本 x.y 主要版本和次要版本中可用的最新 Airflow 版本

Cloud Composer 1 版本别名

Cloud Composer 1 支持以下版本别名:

别名 Cloud Composer 版本 Airflow 版本
composer-1-airflow-2 Cloud Composer 1 的最新版本 最新版本的 Airflow 2
composer-1-airflow-1 Cloud Composer 1 的最新版本 Airflow 1 的最新版本
composer-1-airflow-x.y Cloud Composer 1 的最新版本 x.y 主要版本和次要版本中的最新 Airflow 版本
composer-1-airflow-x.y.z Cloud Composer 1 的最新版本 指定版本的 Airflow
composer-1.b.c-airflow-x.y Cloud Composer 1 的指定版本 x.y 主要版本和次要版本中可用的最新 Airflow 版本。

以下版本别名指向 Cloud Composer 2。您仍然可以使用这些命令,但建议您改用适用于您的 Cloud Composer 版本的别名。

  • composer-latest-airflow-x.y 等于 composer-2-airflow-x.y
  • composer-latest-airflow-x.y.z 等于 composer-2-airflow-x.y.z

Google Cloud CLI 中的版本实参

使用 Google Cloud CLI 创建升级 Cloud Composer 环境时,您可以指定 Cloud Composer 和 Airflow 版本:

Composer 3

  • --image-version 实参以 composer-3-airflow-x.y.z-build.t 格式指定 Airflow 版本和 build。您可以使用 版本别名,这些别名会由 Google Cloud CLI 解析为完整格式。

  • --airflow-version 以以下格式指定 Airflow 版本:

    • x.y.z 格式适用于指定 Airflow 版本的最新 build。此格式与 composer-3-airflow-x.y.z 版本别名相同。

    • x.y 格式适用于 x.y 主要版本和次要版本中可用的最新 Airflow build。此格式与 composer-3-airflow-x.y 版本别名相同。

    • x.y.z-build.t 是指定的 Airflow 版本和 build。此格式等同于 composer-3-airflow-x.y.z-build.t

Composer 2

  • --image-version 实参用于指定 Cloud Composer 2 和 Airflow 版本:

    • composer-a.b.c-airflow-x.y.z 格式会创建使用指定版本的 Cloud Composer 和 Airflow 的环境。
    • 版本别名首先解析为 composer-a.b.c-airflow-x.y.z 格式,然后使用指定版本的 Cloud Composer 2 和 Airflow 创建环境。
  • --airflow-version 以以下格式指定 Airflow 版本:

    • x.y.z 格式适用于最新版本的 Cloud Composer 2 和指定版本的 Airflow。此格式与 composer-2-airflow-x.y.z 版本别名相同。

    • x.y 格式适用于 Cloud Composer 2 的最新版本以及 x.y 主要版本和次要版本中提供的最新 Airflow 版本。此格式与 composer-2-airflow-x.y 版本别名相同。

Composer 1

  • --image-version 实参用于指定 Cloud Composer 1 和 Airflow 版本:

    • composer-a.b.c-airflow-x.y.z 格式会创建使用指定版本的 Cloud Composer 和 Airflow 的环境。
    • 版本别名首先解析为 composer-a.b.c-airflow-x.y.z 格式,然后使用指定版本的 Cloud Composer 1 和 Airflow 创建环境。
  • --airflow-version 以以下格式指定 Airflow 版本:

    • x.y.z 格式适用于最新版本的 Cloud Composer 1 和指定版本的 Airflow。此格式与 composer-1-airflow-x.y.z 版本别名相同。

    • x.y 格式适用于 Cloud Composer 1 的最新版本以及 x.y 主要版本和次要版本中提供的最新 Airflow 版本。此格式与 composer-1-airflow-x.y 版本别名相同。

后续步骤