升级环境

Cloud Composer 1 | Cloud Composer 2

本页面介绍如何将环境升级到新的 Cloud Composer 或 Airflow 版本。

关于升级操作

当您更改环境使用的 Airflow 或 Cloud Composer 版本时,您的环境会升级。

升级不会更改您连接到环境中资源的方式,例如环境存储分区的网址或 Airflow Web 服务器。

在升级期间,Cloud Composer 会执行以下操作:

  1. 使用新版 Cloud Composer 映像重新部署环境组件
  2. 如果您的环境在升级之前有 Airflow 配置更改(例如自定义 PyPI 软件包或 Airflow 配置选项替换),则应用这些更改。
  3. 更新 Airflow airflow_db 连接,使其指向新的 Cloud SQL 数据库。

准备工作

检查您的环境是否为最新版本

当您的环境的映像接近其支持终止日期时,Cloud Composer 会显示警告。您可以使用这些警告来让您的环境始终处于完整的支持期。

“环境详情”页面上显示弃用消息
图 1. “环境详情”页面上会显示一条弃用消息

Cloud Composer 会跟踪您的环境所基于的 Cloud Composer 映像版本。当映像接近其支持终止日期时,您会在环境列表和环境详情页面上看到警告。

要检查环境映像是否为最新版本,请执行以下操作:

控制台

  1. 在 Google Cloud Console 中,转到环境页面。

    转到“环境”

  2. 在环境列表中,点击您的环境名称。环境详情页面会打开。

  3. 转到环境配置标签页。

  4. 映像版本字段中会显示以下消息之一:

    • 最新可用版本。环境映像受到完全支持。

    • 有新版本。环境映像受到完全支持,您可以将其升级到更高版本。

    • 对此映像版本的支持将于...结束 环境映像接近完全支持终止日期。

    • 从...起,此版本将不再受支持环境已超出完全支持期限。

查看可用的升级许可

如需查看您可以升级到的目标 Cloud Composer 版本,请执行以下操作:

控制台

  1. 在 Google Cloud Console 中,转到环境页面。

    转到“环境”

  2. 在环境列表中,点击您的环境名称。环境详情页面会打开。

  3. 转到环境配置标签页,然后点击升级映像版本

  4. 如需查看可用版本的列表,请点击 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 软件包依赖项冲突。请注意,由于其他原因,升级操作可能仍会失败。

控制台

如需为您的环境运行升级检查,请执行以下操作:

  1. 在 Google Cloud Console 中,转到环境页面。

    转到“环境”

  2. 在环境列表中,点击您的环境名称。环境详情页面会打开。

  3. 转到环境配置标签页,找到印象版本条目后,点击升级

  4. 环境版本升级对话框的新版本下拉列表中,选择您要升级到的 Cloud Composer 版本。

  5. PyPI 软件包兼容性 (PyPI packages compatibility) 部分,点击检查是否存在冲突 (Check for conflicts)。

  6. 等待检查完成。如果存在 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.19.5-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.19.5-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,请执行以下操作:

控制台

  1. 在 Google Cloud Console 中,转到环境页面。

    转到“环境”

  2. 在环境列表中,点击您的环境名称。环境详情页面会打开。

  3. 转到环境配置标签页。

  4. 找到映像版本项,然后点击升级

  5. 映像版本下拉菜单中,选择一个版本。

  6. 点击升级

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.19.5-airflow-1.10.15

API

  1. 构建 environments.patch Beta 版 API 请求。

  2. 在此请求中:

    1. updateMask 参数中,指定 config.softwareConfig.imageVersion 掩码。

    2. 在请求正文的 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.19.5-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.19.5-airflow-1.10.15"
    }
  }
}

后续步骤