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
标志来避免等待操作完成。
更新环境
如需详细了解如何更新环境,请参阅有关特定更新操作的其他文档页面。例如:
查看环境详情
控制台
在 Google Cloud 控制台中,转到环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
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 运算符。
升级后,之前的机器类型仍会列在环境的详细信息中。例如,“环境详情”页面不会反映新的机器类型。
控制台
要升级机器类型,请执行以下操作:
在 Google Cloud 控制台中,转到环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
获取有关默认节点池的信息:
转到环境配置标签页。
点击查看集群详情链接。
在“集群”页面的节点部分,点击 default-pool。
记下节点池详情页面上有关 default-pool 的所有信息。您可以使用此信息为您的环境创建新的默认节点池。
如需删除 default-pool,请执行以下操作:
在节点池详情页面上,点击返回箭头以返回到环境的集群页面。
在节点池部分中,点击默认池的垃圾桶图标。然后点击删除以确认操作。
如需创建新的 default-pool,请执行以下操作:
在集群页面上,点击添加节点池。
对于“名称”,请输入
default-pool
。您必须使用default-pool
名称,这样您环境中的工作流才能在此池中运行。输入大小和节点设置。
(仅适用于默认 Compute Engine 服务帐号)对于访问权限范围,请选择允许所有 Cloud API 的全面访问权限。
点击保存。
如果您发现工作负载分布不均匀,请将 Airflow-worker 部署缩减为零,然后再重新纵向扩容。