更新环境

Cloud Composer 1 | Cloud Composer 2

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

更新操作简介

当您更改环境参数(例如指定新的伸缩和性能参数,或安装自定义 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. 节点池部分中,点击默认池的垃圾桶图标。然后点击删除以确认操作。

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

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

    2. 对于“名称”,请输入 default-pool。您必须使用 default-pool 名称,这样您环境中的工作流才能在此池中运行。

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

    4. (仅适用于默认 Compute Engine 服务帐号)对于访问权限范围,请选择允许所有 Cloud API 的全面访问权限

    5. 点击保存

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

后续步骤