Cloud Composer 1 |Cloud Composer 2 |Cloud Composer 3
本页面介绍了如何将环境升级到 Cloud Composer 或 Airflow 版本。
升级操作简介
您可以分别升级 Cloud Composer 和 Airflow 版本,也可以同时升级它们。
更改环境使用的 Airflow 或 Cloud Composer 版本时:
Cloud Composer 会重新部署环境的组件 使用新版本的 Cloud Composer 映像。
Cloud Composer 会应用 Airflow 配置更改(例如自定义 PyPI 软件包或 Airflow 配置选项替换项,如果您的环境在升级前已有这些更改)。
Cloud Composer 会将 Airflow
airflow_db
连接更新为 指向新的 Cloud SQL 数据库。
升级不会改变您在资源管理器中 例如您的环境存储桶的网址,或 Airflow Web 服务器。
升级操作的限制
升级操作具有以下限制:
- 您无法降级到较低版本的 Cloud Composer 或 Airflow 版本。
在 Google Cloud 控制台中,您只能升级到最新的受支持 Cloud Composer 版本。
在 Google Cloud CLI、API 或 Terraform 中,您可以升级环境 最新的受支持版本、 Cloud Composer,上一个次要版本的最后一个补丁版本 以及升级时间表较长的版本。不是 您可以升级到其他版本的 Cloud Composer 它们仍受支持,且可用于创建新环境。
升级到的目标版本必须支持您的环境 当前 Python 版本。
Compute Engine API 配额限制可能会阻止升级。在 Google Cloud 控制台中,前往 IAM 和管理 > 配额和系统限制页面,然后检查 未超出 CPU 的 Compute Engine API 配额。如果 正在接近配额阈值,请在 继续升级操作。
如果 Airflow 数据库包含 超过 16 GB 的数据。升级期间,如果 Airflow 数据库大小超过 16 GB,则会显示警告。在这种情况下,请执行数据库维护以减小数据库大小。
如果您使用 XCom 机制传输文件,请确保您 按照 Airflow 的准则使用它。 使用 XCom 传输大型文件或大量文件会影响 Airflow 数据库的性能,并可能会导致加载快照或升级环境时发生失败。请考虑使用如下替代方案 Cloud Storage 来传输大量数据。
准备工作
检查您的环境是否为最新版本
出现以下情况时,Cloud Composer 会显示警告: 您环境的映像临近完全支持日期。 您可以根据这些警告,始终保持环境 supported。
Cloud Composer 会跟踪 Cloud Composer 映像版本 环境所依据的基础架构。当映像接近其支持终止日期时,您会在环境列表和环境详情页面上看到警告。
如需检查您的环境是否为最新版本,请执行以下操作:
控制台
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到环境配置标签页。
映像版本字段中会显示以下消息之一:
最新可用版本。环境映像受到完全支持。
有新版本。环境映像受到完全支持,您可以将其升级到更高版本。
对此映像版本的支持将于...结束 环境映像接近完全支持终止日期。
从...起,此版本将不再受支持环境已超出完全支持期限。
gcloud
您无法通过 Google Cloud CLI 使用此功能。您可以改为查看可用的升级,系统会显示可用的新版本。
API
此功能无法通过 API 使用。您可以 请改为查看可用升级,其中会显示新版本 可用
查看可用的升级
如需查看您可以升级到的目标 Cloud Composer 版本,请执行以下操作:
控制台
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
前往环境配置标签页,然后点击升级映像版本。
如需查看可用版本的列表,请点击 Cloud Composer 图标 映像版本下拉菜单。
gcloud
gcloud composer environments list-upgrades \
ENVIRONMENT_NAME \
--location LOCATION
替换:
ENVIRONMENT_NAME
替换为环境的名称。LOCATION
替换为环境所在的区域。
示例:
gcloud 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 composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version VERSION
您需要将其中的:
ENVIRONMENT_NAME
替换为环境的名称。LOCATION
替换为环境所在的区域。- 将
VERSION
替换为您要升级到的新的 Cloud Composer 映像版本,采用composer-a.b.c-airflow-x.y.z
格式。 您还可以使用所有版本别名。
示例:
gcloud composer environments check-upgrade example-environment \
--location us-central1 \
--image-version composer-2.9.7-airflow-2.9.3
输出示例:
Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-2.9.7-airflow-2.9.3. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...
Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1.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": "VERSION"
}
将 VERSION
替换为您要升级到的新版本(采用 composer-a.b.c-airflow-x.y.z
格式)。
升级环境
升级环境 更新版本的 Cloud Composer 或 Airflow:
控制台
在 Google Cloud 控制台中,前往环境页面。
在环境列表中,点击您的环境名称。环境详情页面会打开。
转到环境配置标签页。
找到映像版本项,然后点击升级。
从映像版本下拉菜单中,选择 Cloud Composer 要升级到的目标版本
点击升级。
gcloud
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version VERSION
替换:
ENVIRONMENT_NAME
替换为环境的名称。LOCATION
替换为环境所在的区域。VERSION
: 新版 Cloud Composer 映像版本 请在composer-a.b.c-airflow-x.y.z
格式。 您还可以使用所有 版本别名。
例如:
gcloud composer environments update
example-environment \
--location us-central1 \
--image-version composer-2.9.7-airflow-2.9.3
API
构建
environments.patch
API 请求。在此请求中:
在参数
updateMask
中,指定config.softwareConfig.imageVersion
掩码。在请求正文的
imageVersion
字段中,指定一个新的 您要升级到的版本
例如:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion
{
"config": {
"softwareConfig": {
"imageVersion": "composer-2.9.7-airflow-2.9.3"
}
}
}
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 = "VERSION"
}
}
}
您需要将其中的:
ENVIRONMENT_NAME
替换为环境的名称。- 将
LOCATION
替换为环境所在的区域。 新的 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-2.9.7-airflow-2.9.3"
}
}
}