升级环境

本页面介绍如何升级您的环境运行的 Airflow 版本或 Cloud Composer 版本。

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

  • 在一个新的 Kubernetes 命名空间中重新部署 Airflow 调度器和工作器 pod。升级完成后,Airflow 将使用新的 MySQL 数据库;新数据库的名称与新 Kubernetes 命名空间匹配。系统会保留 DAG 运行历史记录。

  • 更新 Airflow airflow_db 连接,使其指向新的 Cloud SQL 数据库。

这些更改会影响您访问 pod 的方式以及连接到 Cloud SQL 数据库的方式。

  • 要在升级后访问 GKE 集群中的 pod,您需要使用命名空间感知的 kubectl 命令。例如,要列出集群中的 pod,请使用 kubectl get pods -A。要在某一 pod 上执行命令,请使用 kubectl exec -n <NAMESPACE> ...
  • 如果您使用直接引用 SQL 代理的 Airflow 连接和工作负载,请将默认命名空间添加到主机名中,如下所示:airflow-sqlproxy-service.default(而非 airflow-sqlproxy-service)。

升级 Cloud Composer 不会改变您连接环境资源的方式,例如 Google Kubernetes Engine 节点虚拟机 IP 地址、Cloud SQL 实例 IP 地址、Cloud Storage 存储分区或 Airflow Web 服务器域名。

准备工作

  • 要进行升级,您需要具备以下角色:roles/editorroles/composer.admin
  • 在升级前,暂停所有 DAG 并等待进行中的任务完成。
  • 您可以分别升级 Cloud Composer 和 Airflow 版本,也可以同时升级它们。
  • 要升级到的一组目标 Cloud Composer 和 Airflow 版本必须是已发布的版本
    • 如需了解可用的升级,请参阅查看可用的升级。要获取最新功能和修复,请考虑升级到最新的 Cloud Composer 版本。
    • 如需查看受支持版本所含的 PyPI 软件包和自定义设置的列表,请参阅 Cloud Composer 版本列表

      在升级之前,请确保您已经了解当前 Airflow 和 Cloud Composer 版本与要升级到的目标版本之间的差异。不兼容的更改可能会导致 DAG 中断。

限制

  • 您不能降级到早期 Cloud Composer 或 Airflow 版本。
  • 您只能升级到属于同一主要版本的最新 Cloud Composer 版本,例如从 composer-1.4.0-airflow-1.10.0 升级到 composer-1.5.0-airflow-1.10.0
  • 要升级到的目标映像版本必须支持您的环境的当前 Python 版本。
  • 目前,您不能在专用 IP Cloud Composer 环境中或在其所属项目启用了 VPC Service Controls 的环境中执行映像版本升级。

查看可用的升级

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

Console

  1. 打开 Google Cloud Platform 中的环境页面。

    打开“环境”页面

  2. 点击相应环境名称

  3. 环境配置标签页中,点击修改

  4. 点击 Cloud Composer 映像版本下拉菜单以获取可用版本。

gcloud

gcloud beta composer environments list-upgrades ENVIRONMENT_NAME \
    --location LOCATION 

其中:

  • ENVIRONMENT_NAME 是环境的名称。
  • LOCATION 是环境所在的 Compute Engine 区域。

例如:

gcloud beta composer environments list-upgrades test-environment \
    --location us-central1
┌─────────────────────────────────────────────────────────────────────────────┐
│                              AVAILABLE UPGRADES                             │
├──────────────────────────────┬──────────────────┬───────────────────────────┤
│        IMAGE VERSION         │ COMPOSER DEFAULT │ SUPPORTED PYTHON VERSIONS │
├──────────────────────────────┼──────────────────┼───────────────────────────┤
│ composer-1.4.0-airflow-1.9.0 │ True             │ 2,3                       │
└──────────────────────────────┴──────────────────┴───────────────────────────┘

API

要使用 Cloud Composer REST API 查看可用的版本,请构建一个 imageVersions.list API 请求,并使用 projects/{projectId}/locations/{locationId} 格式提供项目和位置。

例如:

GET https://composer.googleapis.com/v1/projects/test-project-id/locations/us-central1/imageVersions

{
  "imageVersions": [
    {
      "imageVersionId": "composer-1.4.2-airflow-1.10.0",
      "supportedPythonVersions": [
        "2",
        "3"
      ]
    },
    {
      "imageVersionId": "composer-1.4.2-airflow-1.9.0",
      "isDefault": true,
      "supportedPythonVersions": [
        "2",
        "3"
      ]
    }
  ]
} 

升级 Cloud Composer 版本

要升级您的环境运行的 Cloud Composer 版本,请执行以下操作:

Console

  1. 打开 Google Cloud Platform 中的环境页面。

    打开“环境”页面

  2. 点击要修改的环境的名称

  3. 选择与要更新的属性对应的标签页。

  4. 点击修改

  5. 点击 Cloud Composer 映像版本下拉菜单,然后选择一个版本。

  6. 点击提交

gcloud

gcloud beta composer environments update ENVIRONMENT_NAME \
    --location LOCATION --image-version VERSION

其中:

  • ENVIRONMENT_NAME 是环境的名称。
  • LOCATION 是环境所在的 Compute Engine 区域。
  • VERSION 是要在您的环境中使用的 Cloud Composer 版本和 Airflow 版本,格式为 composer-a.b.c-airflow-x.y.zcomposer-a.b.c-airflow-x.y。如果您未指定 Airflow 补丁程序,那么系统将使用可用于给定主要和次要版本的最高补丁程序版本。

例如:

gcloud beta composer environments update test-environment \
    --location us-central1 --image-version composer-latest-airflow-1.10.1 

API

要使用 Cloud Composer REST API 进行升级,请构建一个 environments.patch API 请求,并使用 composer-a.b.c-airflow-x.y.z 格式提供版本

例如:

PATCH https://composer.googleapis.com/v1beta1/projects/test-project/locations/us-central1/environments/test-environment?updateMask=config.software_config.image_version

请求正文包含 imageVersion

{
  "config": {
    "softwareConfig": {
      "imageVersion": "composer-1.6.0-airflow-1.10.1"
    }
  }
}

升级 Airflow 版本

如果您的环境运行的是最新 Cloud Composer 版本,那么您可以使用 Cloud SDK 来仅升级 Airflow 版本,例如从 composer-1.6.1-airflow-1.9.0 升级到 composer-1.6.1-airflow-1.10.0

gcloud beta composer environments update ENVIRONMENT_NAME \
--location LOCATION --airflow-version VERSION

其中:

  • ENVIRONMENT_NAME 是环境的名称。
  • LOCATION 是环境所在的 Compute Engine 区域。
  • VERSION 是要在您的环境中使用的 Airflow 版本,格式为 x.y.zx.y

例如:

gcloud beta composer environments update test-environment \
--location us-central1 --airflow-version=1.10.1
此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud Composer