更新环境

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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

更新操作简介

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

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

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

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

运行更新操作时,Airflow 调度器和 您的环境中的工作器可能需要重启。在这种情况下,所有当前正在运行的任务都会终止。更新操作 之后,Airflow 会根据 为 DAG 配置重试次数。

以下变更会导致 Airflow 任务终止:

  • 将环境升级到新版本。
  • 添加、更改或删除自定义 PyPI 软件包。
  • 更改 Cloud Composer 环境变量。
  • 添加或移除 Airflow 配置选项替换项,或更改它们的 值。
  • 更改 Airflow 工作器的 CPU、内存或存储空间。
  • 减少 Airflow 工作器数量上限(如果新值是 少于当前正在运行的工作器数量。例如,如果 环境中当前运行三个工作器,最大数量减少到两个。
  • 更改环境的弹性模式。

以下更改不会导致 Airflow 任务终止:

  • 创建、更新或删除 DAG(而非更新操作)。
  • 暂停或取消暂停 DAG(而非更新操作)。
  • 更改 Airflow 变量(不是更新操作)。
  • 更改 Airflow 连接(而非更新操作)。
  • 启用或停用 Dataplex Data Lineage 集成。
  • 正在更改环境的大小。
  • 更改调度器的数量。
  • 更改 Airflow 调度器的 CPU、内存或存储空间。
  • 更改触发器数量。
  • 更改 Airflow 触发器的CPU、内存或存储空间。
  • 更改 Airflow Web 服务器的 CPU、内存或存储空间。
  • 增加或减少工作器数量下限。
  • 减少 Airflow 工作器数量上限。例如,如果 环境中当前运行两个工作器,最多减少到三个。
  • 更改维护窗口。
  • 更改定期快照设置。
  • 正在更改环境标签。

使用 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 调度器和工作器的过程并非瞬时完成,具体取决于这些文件夹中所有对象的总大小和数量。

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

我们建议在 /dags/plugins 文件夹中保存的数据应不超过 30 MB,数据大小绝对不要超过 100 MB。

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

升级 GKE 节点的机器类型

您可以手动为环境的 GKE 集群升级机器类型,方法是删除现有的 default-pool,然后使用所需的机器类型创建一个新 default-pool

我们建议您在创建环境时,针对 Cloud Composer 环境中将进行的计算类型指定合适的机器类型。

如果您要运行执行资源密集型计算的作业,则可能需要使用 GKE 操作符

升级后,之前的机器类型仍列在 环境详细信息例如,“环境详情”页面不会反映新的机器类型。

控制台

要升级机器类型,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往环境页面。

    转到“环境”

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

  3. 获取默认节点池的相关信息:

    1. 转到环境配置标签页。

    2. 点击查看集群详情链接。

    3. “集群”页面节点部分,点击 default-pool

    4. 请记下“节点池详情”页面上 default-pool 的所有信息。您将使用这些信息为您的环境创建新的默认节点池。

  4. 如需删除 default-pool,请执行以下操作:

    1. 节点池详情页面上,点击返回箭头以返回到环境的集群页面。

    2. 节点池部分中,点击 default-pool 对应的垃圾桶图标。然后点击删除以确认操作。

  5. 如需创建新的 default-pool,请执行以下操作:

    1. 集群页面上,点击添加节点池

    2. 在“名称”中,输入 default-pool。您必须使用 default-pool 名称,以便您环境中的工作流可以在此池中运行。

    3. 输入大小和节点设置。

    4. (仅适用于默认 Compute Engine 服务账号)对于访问权限范围,选择授予对所有 Cloud API 的完整访问权限

    5. 点击保存

  6. 如果您发现工作负载分布不均匀,请先将 airflow-worker 部署缩容为零负载,然后再重新对其进行纵向扩容。

后续步骤