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 会显示警告。 您可以使用这些警告来始终确保您的环境受支持。
![“环境详情”页面上会显示弃用消息](https://cloud.google.com/static/composer/docs/images/environment-deprecation-message.png?hl=zh-cn)
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"
}
}
}