本页面介绍了 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 角色。使用适用于 GKE 的工作负载身份联合。无需额外权限 |
通过员工身份联合访问 | 不支持 | 支持 | 支持 |
高度弹性环境 | 不支持 | 支持 | 尚未提供 |
专用 IP 网络 | VPC 对等互连 | Private Service Connect | 简化了网络设置。可以在现有环境中在公共 IP 和专用 IP 之间切换。 |
VPC Service Controls | 支持 | 支持 | 支持 |
Airflow 执行器 | Celery 执行程序 | Celery 执行程序 | CeleryKubernetes 执行器 |
Airflow 触发器(可延期运算符) | 不支持 | 支持 | 支持 |
CMEK | 支持 | 支持 | 尚未提供 |
Web 服务器访问权限控制 | 支持 | 支持 | 支持 |
重启 Web 服务器 | 支持 | 支持 | 支持 |
Web 服务器插件 | 在已停用 DAG 序列化的 Airflow 1 环境中受支持。 | 支持 | 受支持,可按需停用和启用插件。 |
安装自定义插件 | 支持 | 支持 | 支持 |
维护操作 | 所有任务都可能会受到影响。 | 执行时间少于 55 分钟的任务不会受到影响。 | 执行时间少于 55 分钟的任务不会受到影响。 |
存储快照 | 支持 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 版本首次发布后的一段时间内为其提供支持:
如果 Airflow 的次要版本是 Cloud Composer 3 中提供的最新版本,则系统会完全支持使用此次要版本的所有 Airflow build。确切的支持服务结束日期将在 Cloud Composer 3 中提供新的 Airflow 次要版本时确定。
当 Cloud Composer 3 中提供新的 Airflow 次要版本时,从该日期起,我们将支持使用上一个 Airflow 次要版本的所有 build 12 个月。如果有多个 build 包含相同的 Airflow 次要版本,则所有这些 build 的完整支持结束日期都相同。
次要版本不再完全受支持后,运行此版本的环境也不受支持,并且完全由用户管理。您仍然可以将此类环境升级到完全受支持的 Airflow 版本。
您可以使用所有完全受支持的 Airflow build 创建环境。
您仍然可以使用不再受支持的 Airflow build 的环境。该环境仍可正常运行,您可以继续使用它,也可以将其升级到完全受支持的版本。
Composer 2
Google 会在版本发布后的一段时间内支持 Cloud Composer 2 版本。在此期间,使用这些版本的 Cloud Composer 2 环境完全受支持。
关于 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 相同的版本弃用政策,并因此受到支持。
2024 年 3 月 25 日,Cloud Composer 1 进入了维护后模式。Google 不会再发布 Cloud Composer 1 的任何更新,包括 Airflow 新版本、错误修复和安全更新。我们建议迁移到 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 管理的自定义设置的版本airflow-x.y.z
是 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 中,所有版本别名都将变为
在 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
版本别名。