Cloud Composer 1 | Cloud Composer 2
本页面介绍如何将环境升级到新的 Cloud Composer 或 Airflow 版本。
升级操作简介
当您更改环境使用的 Airflow 或 Cloud Composer 版本时,您的环境会升级。
升级不会改变您连接到环境中资源的方式,例如环境存储桶的网址或 Airflow Web 服务器的网址。
在升级期间,Cloud Composer 会执行以下操作:
- 使用新版本的 Cloud Composer 映像重新部署环境的组件。
- 如果您的环境在升级之前已具有 Airflow 配置更改(例如自定义 PyPI 软件包或 Airflow 配置选项替换),则应用这些更改。
- 更新 Airflow
airflow_db
连接以指向新的 Cloud SQL 数据库。
准备工作
升级目前处于预览版阶段。在生产环境中,请谨慎使用此功能。
您不能降级到早期 Cloud Composer 或 Airflow 版本。
我们建议您为环境创建新的快照,以便在需要时重新创建环境。
您可以升级 Cloud Composer 版本和/或 Airflow 版本。
您可以从任何版本的 Cloud Composer 升级到最新版本、三个旧版 Cloud Composer,以及升级时间表更长的版本。
如需升级到最新 Cloud Composer 版本以外的版本,请使用 Google Cloud CLI、API 或 Terraform。在 Google Cloud 控制台中,您只能升级到最新版本。
因此无法直接升级到 Cloud Composer 或 Airflow 的其他主要版本。您可以在环境之间手动转移 DAG 和配置。如需了解详情,请参阅以下主题:
您必须具有可以触发环境升级操作的角色。此外,环境的服务账号必须具有拥有足够权限来执行升级操作的角色。如需了解详情,请参阅访问权限控制。
如需查看要升级到的版本中的 PyPI 软件包列表,请参阅 Cloud Composer 版本列表。
如果 Airflow 数据库包含的数据超过 16 GB,则无法升级环境。在升级过程中,如果 Airflow 数据库大小超过 16 GB,则系统会显示警告。在这种情况下,请执行数据库维护以缩减数据库大小。
要升级到的目标映像版本必须支持您的环境的当前 Python 版本。
确保您的 DAG 与 Airflow 版本和所有提供程序软件包(包括 Google Cloud 和 Google 服务的 Airflow 提供商软件包)兼容。您可以查看特定 Cloud Composer 版本中包含的提供程序软件包的版本。
在 Google Cloud 控制台中,前往 IAM 和管理 > 配额和系统限制页面,检查是否未超出
Compute Engine Engine API
的 CPU 配额。如果即将达到配额阈值,请先申请增加配额,然后再继续升级操作。您可以升级到最近发布的三个 Cloud Composer 版本,也可以升级到 Cloud Composer 版本中所述的“扩展升级支持”版本之一。
检查您的环境是否为最新版本
当环境的映像接近支持终止日期时,Cloud Composer 会显示警告。您可以使用这些警告来始终让您的环境处于全面支持期。
![“环境详情”页面上会显示弃用消息](https://cloud.google.com/static/composer/docs/images/environment-deprecation-message.png?authuser=7&hl=zh-cn)
Cloud Composer 会跟踪您的环境所基于的 Cloud Composer 映像版本。当映像接近其支持终止日期时,您会在环境列表和环境详情页面上看到警告。
要检查环境映像是否为最新版本,请执行以下操作:
控制台
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到环境配置标签页。
映像版本字段中会显示以下消息之一:
最新可用版本。环境映像受到完全支持。
有新版本。环境映像受到完全支持,您可以将其升级到更高版本。
对此映像版本的支持将于...结束 环境映像接近完全支持终止日期。
从...起,此版本将不再受支持环境已超出完全支持期限。
查看可用的升级许可
如需查看您可以升级到的目标 Cloud Composer 版本,请执行以下操作:
控制台
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到环境配置标签页,然后点击升级映像版本。
如需查看可用版本的列表,请点击 Cloud Composer 映像版本下拉菜单。
gcloud
gcloud beta composer environments list-upgrades \
ENVIRONMENT_NAME \
--location LOCATION
您需要在其中:
ENVIRONMENT_NAME
替换为环境的名称。LOCATION
替换为环境所在的区域。
示例:
gcloud beta composer environments list-upgrades example-environment \
--location us-central1
API
您可以查看某个营业地点的可用版本。为此,请构建一个 imageVersions.list
API 请求。
例如:
// GET https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/imageVersions
在升级之前检查是否存在 PyPI 软件包冲突
您可以检查环境中安装的 PyPI 软件包是否与新 Cloud Composer 映像中预安装的软件包发生冲突。
如果检查成功,则表示当前版本和指定版本之间没有 PyPI 软件包依赖项冲突。请注意,升级操作可能会因其他原因而失败。
控制台
如需为您的环境运行升级检查,请执行以下操作:
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到环境配置标签页,找到印象版本条目后,点击升级。
在环境版本升级对话框的新版本下拉列表中,选择您要升级到的 Cloud Composer 版本。
在 PyPI 软件包兼容性 (PyPI packages compatibility) 部分,点击检查是否存在冲突 (Check for conflicts)。
等待检查完成。如果存在 PyPI 软件包依赖项冲突,则显示的错误消息包含有关冲突软件版包和软件包版本的详细信息。
gcloud
如需为您的环境运行升级检查,请使用您要升级到的 Cloud Composer 映像版本运行 environments check-upgrade
命令。
gcloud beta composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version COMPOSER_IMAGE
您需要在其中:
ENVIRONMENT_NAME
替换为环境的名称。LOCATION
替换为环境所在的区域。- 将
COMPOSER_IMAGE
替换为您要升级到的新 Cloud Composer 映像版本,格式为composer-a.b.c-airflow-x.y.z
。
示例:
gcloud beta composer environments check-upgrade example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15
输出示例:
Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-1.20.12-airflow-1.10.15. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...
Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1beta1.CheckUpgradeResponse
buildLogUri: https://console.cloud.google.com/cloud-build/builds/79738aa7-...
containsPypiModulesConflict: CONFLICT
pypiConflictBuildLogExtract: |-
The Cloud Build image build failed: Build failed; check build logs for
details. Full log can be found at https://console.cloud.google.com/
cloud-build/builds/79738aa7-...
Error details: tensorboard 2.2.2 has requirement
setuptools>=41.0.0, but you have setuptools 40.3.0.
或者,您也可以异步运行升级检查。使用 --async
参数进行异步调用,然后使用 gcloud composer operations describe
命令检查结果。
API
构建 environments.checkUpgrade
API 请求。
在 imageVersion
字段中指定映像版本:
{
"imageVersion": "COMPOSER_IMAGE"
}
将 COMPOSER_IMAGE
替换为您要升级到的新 Cloud Composer 映像版本,格式为 composer-a.b.c-airflow-x.y.z
。
升级您的环境
如需将环境升级到更高版本的 Cloud Composer 或 Airflow,请执行以下操作:
控制台
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到环境配置标签页。
找到映像版本项,然后点击升级。
从映像版本下拉菜单中,选择一个版本。
点击升级。
gcloud
gcloud beta composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version COMPOSER_IMAGE
您需要在其中:
ENVIRONMENT_NAME
替换为环境的名称。LOCATION
替换为环境所在的区域。- 将
COMPOSER_IMAGE
替换为您要升级到的新 Cloud Composer 映像版本,格式为composer-a.b.c-airflow-x.y.z
。
例如:
gcloud beta composer environments update
example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15
API
构建
environments.patch
Beta 版 API 请求。在此请求中:
在
updateMask
参数中,指定config.softwareConfig.imageVersion
掩码。在请求正文的
imageVersion
字段中,包含您要升级到的新 Cloud Composer 映像版本,格式为composer-a.b.c-airflow-x.y.z
。
例如:
// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion
{
"config": {
"softwareConfig": {
"imageVersion": "composer-1.20.12-airflow-1.10.15"
}
}
}
Terraform
config.software_config
块中的 image_version
字段用于控制环境的 Cloud Composer 映像。在此字段中,指定一个新的 Cloud Composer 映像。
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "COMPOSER_IMAGE"
}
}
}
您需要在其中:
ENVIRONMENT_NAME
替换为环境的名称。LOCATION
替换为环境所在的区域。- 将
COMPOSER_IMAGE
替换为您要升级到的新 Cloud Composer 映像版本,格式为composer-a.b.c-airflow-x.y.z
。
示例:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-1.20.12-airflow-1.10.15"
}
}
}