更新环境

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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

更新操作简介

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

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

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

更新对正在运行的 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。

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

升级 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 部署缩容为零,然后再次纵向扩容。

后续步骤