更新环境

Cloud Composer 1 | Cloud Composer 2

本页面介绍了如何更新环境。

更新操作简介

当您更改环境参数(例如指定新的伸缩和性能参数,或安装自定义 PyPI 软件包)时,环境会更新。

此操作完成后,更改将在您的环境中生效。

对于单个 Cloud Composer 环境,您一次只能启动一个更新操作。您必须等待更新操作完成,然后才能启动另一个环境操作。

触发器的 CPU 限制

2.4.4 版中的 Cloud Composer 为 Airflow 触发器组件引入了一种不同的性能伸缩方法,该方法适用于所有 Cloud Composer 2 版本。

在 2.4.4 版之前,Cloud Composer 环境最多可以使用 1 个或 2 个触发器。更改后,每个环境最多可以有 10 个触发器,但每个触发器最多只能有 1 个 vCPU。

如果您的环境为每个触发器配置了超过 1 个 vCPU,则环境更新操作会失败。您必须调整配置以满足 1 个 vCPU 的限制,才能对其他组件执行更新。

如需了解详情,请参阅以下主题:

更新对正在运行的 Airflow 任务有何影响

当您运行更新操作(例如安装自定义 PyPI 软件包)时,环境中的所有 Airflow 调度器和工作器都会重启,并且当前正在运行的所有任务都会终止。更新操作完成后,Airflow 会安排这些任务进行重试,具体取决于您为 DAG 配置重试的方式。

使用 Terraform 进行更新

terraform apply 之前运行 terraform plan,以查看 Terraform 是否创建新环境,而不是对其进行更新。

准备工作

  • 请检查您的环境的服务帐号以及项目中的 Cloud Composer Service Agent 帐号是否具有必需的权限:

  • 操作完成后,gcloud composer environments update 命令即终止。您可以使用 --async 标志来避免等待操作完成。

更新环境

如需详细了解如何更新环境,请参阅有关特定更新操作的其他文档页面。例如:

查看环境详情

控制台

  1. 在 Google Cloud 控制台中,转到环境页面。

    转到“环境”

  2. 在环境列表中,点击您的环境名称。环境详情页面会打开。

gcloud

运行以下 gcloud 命令:

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION

您需要将其中的:

  • ENVIRONMENT_NAME 替换为环境的名称。
  • LOCATION 替换为环境所在的区域。

API

构建 environments.get API 请求。

示例:

GET https://composer.googleapis.com/v1/projects/example-project/
locations/us-central1/environments/example-environment

Terraform

针对环境的资源运行 terraform state show 命令。

环境的 Terraform 资源的名称可能与环境的名称不同。

terraform state show google_composer_environment.RESOURCE_NAME

您需要将其中的:

  • RESOURCE_NAME 替换为您的环境资源名称。

正在回滚更新更改

在极少数情况下,更新操作可能会中断(例如,由于超时),并且请求的更改可能不会在所有环境组件(如 Airflow Web 服务器)中回滚。

例如,更新操作可能是安装或移除其他 PyPI 模块、重新定义或定义新的 Airflow 或 Cloud Composer 环境变量,或者更改某些与 Airflow 相关的参数。

如果其他操作(例如 Cloud Composer 集群的自动扩缩或维护操作)正在进行中时触发了更新操作,则可能会出现此类情况。

在这种情况下,建议您重复此操作。

更新或升级操作的持续时间

大多数更新或升级操作都需要重启 Airflow 组件,如 Airflow 调度器、工作器和 Web 服务器。

组件重启后必须初始化。在初始化期间,Airflow 调度器和工作器会从环境的存储桶下载 /dags/plugins 文件夹的内容。将文件同步到 Airflow 调度器和工作器的过程不是即时的,具体取决于这些文件夹中所有对象的总大小和数量。

我们建议仅将 DAG 文件和插件文件分别保留在 /dags/plugins 文件夹中,并移除所有其他文件。/dags/plugins 文件夹中的数据过多可能会减慢 Airflow 组件的初始化速度,并且在某些情况下可能会导致无法初始化。

我们建议在 /dags/plugins 文件夹中保留不超过 30 MB 的数据,并且绝对不超过 100 MB。

如需了解详情,另请参阅:

后续步骤