设置高弹性环境

Cloud Composer 1 |Cloud Composer 2 |Cloud Composer 3

本页面介绍了如何设置高弹性 Cloud Composer 环境

Cloud Composer 中针对可用区级故障的弹性简介

高弹性 Cloud Composer 环境使用内置冗余 和故障切换机制,可降低环境易受可用区影响的机制 包括单点故障和单点故障

例如,可用区级服务中断会中断在特定区域中运行的 Airflow 任务, 可用区。之后,高弹性环境会恢复、重启其 受影响的组件,将其数据库切换到 次要可用区因此,可以重新调度失败的 Airflow 任务, 由 Airflow 重启,同时保留 DAG 的历史记录 运行方式和其他设置

高弹性环境运行于选定区域的至少两个可用区 区域。Cloud Composer 自动分发您的组件 不同可用区之间的资源

您可以使用高弹性 Cloud Composer 环境 关键业务流程。

关于您的环境的高可用性数据库

在高可用性 Cloud Composer 环境中 一个实例,用于存储您的环境中运行的数据库 高可用性模式。Cloud SQL 也称为区域级实例 位于所配置区域内的主要可用区和次要可用区中。 在区域实例中,该配置由主实例组成 和备用实例

如果发生服务中断,您环境的 Cloud SQL 实例 执行自动数据库故障切换,切换到备用 Cloud SQL 实例。您无需在 Cloud Composer 环境。在主可用区正常运行后 则环境会切换回拥有两个可用区(主可用区和可用区) 次要)。在某些情况下,主要可用区和次要可用区可以交换。通过 高可用性模式下的 Cloud SQL 实例使用相同的 IP 地址。

高可用性 Airflow 组件简介

高可用性 Cloud Composer 环境运行 Airflow 这些组件分布在可用区之间

您的环境始终正好运行两个 Airflow 调度器、两个 Web 服务器 以及至少两个(但不超过 10 个)触发器 如果已启用触发器。这些 组件在不同的可用区中运行工作器数量下限设置为两个, 并且您环境的集群会在可用区之间分布工作器实例。在 在可用区发生服务中断的情况下,系统将重新安排受影响的工作器实例, 另一个可用区

如需详细了解高弹性环境的架构, 请参阅高弹性环境架构

准备工作

  • 可选择高弹性环境 仅限专用 IP 环境中

  • 提供高弹性环境 常规环境中

  • Cloud Composer 提供高弹性环境 2.2.0 及更高版本。

  • 如果要将标准环境更新为高弹性环境, 确保其满足以下配置要求如果 您的环境不符合这些要求,那么您可以 更新其规模和性能参数

    • Airflow 工作器数量下限为 2 个或更多。
    • Airflow 调度器的数量正好为 2。
    • 如果您在 DAG 中使用可延期运算符, 然后至少添加 2 个触发器。

打造高弹性环境

为了打造一个高弹性环境, 启用高弹性模式 环境

将标准环境更新为高弹性模式

控制台

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

    转到“环境”

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

  3. 选择环境配置标签页。

  4. 弹性模式部分中,点击修改

  5. 选择高弹性,然后点击保存

gcloud

  gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --enable-high-resilience

替换以下内容:

  • ENVIRONMENT_NAME:您的环境的名称。
  • LOCATION:环境所在的区域。

API

  1. 构建 environments.patch API 请求。

  2. 在此请求中:

    1. updateMask 参数中,指定 config.resilienceMode 个蒙版。

    2. 在请求正文中,指定 HIGH_RESILIENCE 以切换到高优先级模式。 弹性模式

示例:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.resilienceMode

{
 "config": {
   "resilience_mode": { "HIGH_RESILIENCE" }
   }
 }

Terraform

config 块中的 resilience_mode 字段指定弹性 模式。如需使用高弹性模式,请将此值设置为 HIGH_RESILIENCE

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    resilience_mode = "HIGH_RESILIENCE"

  }
}

替换以下内容:

  • ENVIRONMENT_NAME:您的环境的名称。
  • LOCATION:环境所在的区域。

示例:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    resilience_mode = "HIGH_RESILIENCE"

}

将高弹性环境更改为标准弹性模式

您可以随时将环境更改为标准弹性模式。这个 操作:

  • 将环境中的 Web 服务器数量减少到 1 个。
  • 关闭设备的高可用性模式 环境的 Airflow 数据库。
  • 不会更改 Airflow 工作器数量下限设置, 调度器或触发器。

控制台

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

    转到“环境”

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

  3. 选择环境配置标签页。

  4. 弹性模式部分中,点击修改

  5. 选择标准弹性(默认),然后点击保存

gcloud

  gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-high-resilience

替换以下内容:

  • ENVIRONMENT_NAME:您的 Cloud Composer 环境的名称
  • LOCATION:环境所在的区域。

API

  1. 构建 environments.patch API 请求。

  2. 在此请求中:

    1. updateMask 参数中,指定 config.resilienceMode 个蒙版。

    2. 在请求正文中,指定 RESILIENCE_MODE_UNSPECIFIED 以切换 标准弹性模式

示例:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.resilienceMode

{
 "config": {
   "resilience_mode": { "RESILIENCE_MODE_UNSPECIFIED" }
   }
 }

Terraform

config 块中的 resilience_mode 字段指定弹性 模式。如需使用标准弹性模式,请将此值设置为 STANDARD_RESILIENCE.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    resilience_mode = "STANDARD_RESILIENCE"

  }
}

替换以下内容:

  • ENVIRONMENT_NAME:您的环境的名称。
  • LOCATION:环境所在的区域。

示例:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    resilience_mode = "STANDARD_RESILIENCE"

}

检查您的环境是否在高弹性模式下运行

控制台

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

    转到“环境”

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

  3. 选择环境配置标签页。

  4. 弹性模式部分中,查看应用的弹性模式 环境

gcloud

如需检查您的环境中是否启用了高弹性模式,请运行 执行 Google Cloud CLI 命令True 值表示高 您的环境中已启用弹性模式。

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION \
  --format="value(config.resilienceMode)"

替换以下内容:

  • ENVIRONMENT_NAME:您的 Cloud Composer 环境的名称
  • LOCATION:环境所在的区域。

后续步骤