将环境迁移到 Cloud Composer 3

Cloud Composer 1 |Cloud Composer 2 |Cloud Composer 3

本页面介绍了如何从 将现有 Cloud Composer 2 环境复制到 Cloud Composer 3。

准备工作

  • 本迁移指南使用快照。Cloud Composer 2 2.0.9 及更高版本支持快照。

  • Cloud Composer 支持从 Cloud Composer 2 并行迁移到 Cloud Composer 3。无法 从 Cloud Composer 2 直接升级到 Cloud Composer 3。

  • 查看 Cloud Composer 2 和 Cloud Composer 3 区别列表。 确保您的环境未使用 Cloud Composer 3 公开预览版中不提供的功能。

  • 支持快照的 Airflow 数据库大小上限为 20 GB。如果环境的数据库 超过 20 GB, 减小 Airflow 数据库的大小

  • 若要创建快照,环境存储桶中的 /dags/plugins/data 文件夹中的对象总数必须少于 10 万。

  • 如果您使用 XCom 机制传输文件,请确保您 按照 Airflow 的准则使用它。 使用 XCom 传输大型文件或大量文件会影响 Airflow 数据库的性能,并可能会导致加载快照或升级环境时发生失败。请考虑使用如下替代方案 Cloud Storage 来传输大量数据。

确保您的 DAG 与 Cloud Composer 3 兼容

请按照以下建议操作,确保您的 DAG 与 Cloud Composer 3 兼容:

  • Cloud Composer 3 环境中的软件包列表可能与 Cloud Composer 2 环境中的软件包列表不同。这可能会影响 DAG 与 Cloud Composer 3 的兼容性。

  • Cloud Composer 加载配置替换,环境 变量和 PyPI 软件包 从 Cloud Composer 2 环境的快照复制到 无需更改或调整它们 兼容性。如果自定义 PyPI 软件包导致依赖项冲突,您可以 则跳过其安装过程。

  • 在 Cloud Composer 3 中,环境的集群 位于租户项目中。请确保您的 DAG 与此更改兼容。具体而言,KubernetesPodOperator 工作负载现在会独立于环境进行扩缩,并且无法使用 Pod 亲和性配置。

  • 在 Cloud Composer 3 中,无法直接访问 Airflow 数据库。请确保您的 DAG 与此更改兼容。

在 Cloud Composer 2 环境中暂停 DAG

为避免重复运行 DAG,请先暂停 Cloud Composer 2 环境中的所有 DAG,然后再保存其快照。跳过活跃性监控 DAG (airflow_monitoring),用于监控目的,未包含在内 环境快照。

您可以使用以下任一选项来暂停 DAG:

  • 在 Google Cloud 控制台中逐个暂停 DAG:

    1. 在 Google Cloud 控制台中,前往环境页面。

      转到“环境”

    2. 选择环境以查看其详细信息。

    3. 环境详情页面上,前往 DAG 标签页。

    4. 点击 DAG 的名称。

    5. DAG 详情页面上,点击 Pause DAG(暂停 DAG)。

  • Airflow 网页界面中,前往 DAG。 手动暂停所有 DAG。

  • 使用 composer_dags 脚本暂停所有 DAG:

    python3 composer_dags.py --environment COMPOSER_2_ENV \
      --project PROJECT_ID \
      --location COMPOSER_2_LOCATION \
      --operation pause
    

    您需要将其中的:

    • COMPOSER_2_ENV 替换为 Cloud Composer 2 环境的名称。
    • PROJECT_ID 替换为项目 ID
    • COMPOSER_2_LOCATION 替换为环境所在的区域。

保存 Cloud Composer 2 环境的快照

控制台

创建环境的快照:

  1. 在 Google Cloud 控制台中,前往环境页面。

    转到“环境”

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

  3. 点击创建快照

  4. 创建快照对话框中,点击提交。在本指南中,您将快照保存在 Cloud Composer 2 环境的存储桶中,但您也可以根据需要选择其他位置。如果您 指定自定义位置 两个环境的服务账号 必须具有指定位置的读写权限。

  5. 等待 Cloud Composer 创建快照。

  6. 创建快照后,系统会显示一条消息,输出快照的位置。保存此信息,以便稍后在加载此代码时使用 复制到 Cloud Composer 3 环境中。

    例如,快照位置可能如下所示: gs://us-central1-example-916807e1-bucket/snapshots/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12

gcloud

  1. 创建 Cloud Composer 2 环境的快照:

    gcloud composer environments snapshots save \
      COMPOSER_2_ENV \
      --location COMPOSER_2_LOCATION
    

    您需要将其中的:

    • COMPOSER_2_ENV 替换为 Cloud Composer 2 环境的名称。
    • COMPOSER_2_LOCATION 替换为 Cloud Composer 2 环境所在的区域。
    • (可选)您可以使用 --snapshot-location 参数来指定 必须存储环境快照的自定义位置。

      在本指南中,您需要将快照保存在 但您可以选择 。如果您指定了自定义地理位置 两个环境的服务账号 必须具有指定位置的读写权限。

  2. 创建快照后,系统会显示一条消息,输出快照的位置。保存此信息,以便稍后将此快照加载到 Cloud Composer 3 环境时使用。

    例如,快照位置可能如下所示: gs://us-central1-example-916807e1-bucket/snapshots/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12

创建 Cloud Composer 3 环境

使用以下转换创建 Cloud Composer 3 环境 指南:

  • 开始时,您可以采用与 Cloud Composer 2 环境及更高版本扩展和优化配置 。

  • 在 Cloud Composer 3 环境中,Airflow DAG 处理器会作为单独的环境组件运行。由于 DAG 处理器会将 DAG 解析工作从调度器分流,因此您可能需要重新分配之前分配给 Airflow 调度器的资源。您可以在迁移到 Cloud Composer 3 后再执行此操作,并监控调度程序和 DAG 处理器的性能。

  • 与 Cloud Composer 2 相比,Cloud Composer 3 提供了更简化、更流畅的网络设置。您可以在公有 IP 和专用 IP 网络配置之间切换,以及附加和分离 VPC 网络。您无需指定 IP 范围 。确保 Cloud Composer 3 环境的网络配置与相应的 Cloud Composer 2 配置一致。

  • 您无需指定配置替换和环境变量 因为以后在加载快照时替换它们 Cloud Composer 2 环境。

将快照加载到 Cloud Composer 3 环境

控制台

如需将快照加载到 Cloud Composer 3 环境中,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往环境页面。

    转到“环境”

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

  3. 点击加载快照

  4. 加载快照对话框中,点击浏览

  5. 选择包含快照的文件夹。

    如果您使用本指南的默认位置,则此文件夹位于 /snapshots 文件夹中的 Cloud Composer 2 环境存储桶,以及 其名称是快照保存操作的时间戳。关于成功创建快照的消息中也显示了相同的位置。

    例如:us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12

  6. 点击加载,然后等待 Cloud Composer 加载快照。

gcloud

将 Cloud Composer 2 环境的快照加载到 Cloud Composer 3 环境:

gcloud composer environments snapshots load \
  COMPOSER_3_ENV \
  --location COMPOSER_3_LOCATION \
  --snapshot-path "SNAPSHOT_PATH"

您需要将其中的:

  • COMPOSER_3_ENV 替换为 Cloud Composer 3 环境的名称。
  • COMPOSER_3_LOCATION 替换为 Cloud Composer 3 环境所在的区域。
  • SNAPSHOT_PATH 替换为您的 Cloud Composer 2 的 URI 环境的存储桶,后跟快照的路径。相同 已成功创建 快照。例如:gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2024-05-15T15-23-12

在 Cloud Composer 3 环境中取消暂停 DAG

您可以使用以下任一选项:

  • 在 Google Cloud 控制台中逐个取消暂停 DAG:

    1. 在 Google Cloud 控制台中,前往环境页面。

      转到“环境”

    2. 选择环境以查看其详细信息。

    3. 环境详情页面上,前往 DAG 标签页。

    4. 点击 DAG 的名称。

    5. DAG 详情页面上,点击取消暂停 DAG

  • Airflow 网页界面中, 前往 DAG,然后逐个手动取消暂停所有 DAG。

  • 使用 composer_dags 脚本取消暂停所有 DAG:

      python3 composer_dags.py --environment COMPOSER_3_ENV \
      --project PROJECT_ID \
      --location COMPOSER_3_LOCATION \
      --operation unpause
    

    您需要将其中的:

    • COMPOSER_3_ENV 替换为您的 Cloud Composer 3 环境的名称。
    • PROJECT_ID 替换为项目 ID
    • COMPOSER_3_LOCATION 替换为环境所在的区域。

检查是否存在 DAG 错误

  1. Airflow 网页界面中,转到 DAG 并查看报告的 DAG 语法错误。

  2. 检查是否将 DAG 运行安排在正确的时间。

  3. 等待 DAG 在 Cloud Composer 3 环境中运行,然后 检查是否成功如果 DAG 运行成功,请勿 在 Cloud Composer 2 环境中解除暂停状态;执行这一操作后 在 Cloud Composer 2 中针对同一时间和日期运行 环境

  4. 如果特定 DAG 运行失败,请尝试执行以下操作: 排查 DAG 问题,直到成功 在 Cloud Composer 3 中运行。

监控 Cloud Composer 3 环境

将所有 DAG 和配置转移到 Cloud Composer 后 3 监控其是否存在潜在问题、失败的 DAG 运行以及 环境健康状况

如果 Cloud Composer 3 环境在足够长的时间内正常运行,请考虑删除 Cloud Composer 2 环境。

后续步骤