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 配额是否未超出。如果 正在接近配额阈值,请在 继续升级操作。
无法升级到 Cloud Composer 或 Airflow。您可以手动转移 DAG 和环境之间的配置。如需了解详情,请参阅以下主题:
- 如果 Airflow 数据库包含的数据超过 16 GB,则无法升级环境。在升级过程中 Airflow 数据库大小超过 16 GB 时显示。 在这种情况下,请执行数据库维护以减小数据库大小。
准备工作
检查您的环境是否为最新版本
出现以下情况时,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-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.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-1.20.12-airflow-1.10.15
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-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 = "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-1.20.12-airflow-1.10.15"
}
}
}