Managed Airflow(第 3 代) | Managed Airflow(第 2 代) | Managed Airflow(旧版第 1 代)
本页介绍了如何扩缩 Managed Airflow 环境。
- 如需了解环境伸缩的工作原理,请参阅 环境伸缩。
纵向和横向扩缩
在 Managed Airflow(旧版第 1 代)中,您不会为 Managed Airflow 和 Airflow 组件(例如工作器和调度器)定义特定的 CPU 和内存资源。相反,您需要为环境集群中的节点指定机器的数量和类型。
横向伸缩选项:
- 调整节点数量
- 调整调度器的数量
纵向扩缩选项:
- 调整 Cloud SQL 实例的机器类型
- 调整 Web 服务器机器类型
调整调度器参数
您的环境可以同时运行多个 Airflow 调度器。使用多个调度器在多个调度器实例之间分配负载,以实现更好的性能和可靠性。
如果您的环境使用 Airflow 2,则可以指定调度器数量,不超过您环境中的节点数。
伸缩调度器时,请考虑以下事项:
增加调度器的数量并不总是可以提高 Airflow 性能。
例如,如果额外的调度器未得到利用,则可能会发生这种情况,因而会占用环境的资源,而不会提升整体性能。实际的调度器性能取决于 Airflow 工作器的数量、在您的环境中运行的 DAG 和任务的数量,以及 Airflow 和环境的配置。
我们建议您先使用两个调度器,然后再监控环境的性能。
如需详细了解如何配置多个调度器,请参阅 Airflow 文档。
控制台
在 Google Cloud 控制台中,前往 环境 页面。
在环境列表中,点击您的环境名称。环境详情 页面会打开。
转到环境配置 标签页。
在资源 > 工作负载配置 项中, 点击修改。
在资源 > 调度器数量 项中, 点击 修改。
在调度器配置 窗格的调度器数量 字段中,为您的环境指定调度器数量。
点击保存 。
gcloud
以下 Airflow 调度器参数可用:
--scheduler-count:您环境中的调度器数量。
运行以下 Google Cloud CLI 命令:
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--scheduler-count SCHEDULER_COUNT
替换以下内容:
ENVIRONMENT_NAME:环境的名称。LOCATION:环境所在的区域。
例如:
gcloud composer environments update example-environment \
--location us-central1 \
--scheduler-count 2
API
构建
environments.patchAPI 请求。在此请求中:
在
updateMask参数中,指定config.workloadsConfig.schedulerCount掩码。在请求正文中,为您的环境指定调度器数量。
"config": {
"workloadsConfig": {
"scheduler": {
"count": SCHEDULER_COUNT
}
}
}
替换以下内容:
ENVIRONMENT_NAME:环境的名称。LOCATION:环境所在的区域。SCHEDULER_COUNT:调度器的数量。
例如:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.scheduler
"config": {
"workloadsConfig": {
"scheduler": {
"count": 2
}
}
}
Terraform
workloads_config.scheduler 块中的以下字段控制 Airflow 调度器参数。每个调度器使用指定数量的资源。
scheduler.count:您环境中的调度器数量。
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
workloads_config {
scheduler {
count = SCHEDULER_COUNT
}
}
}
}
替换以下内容:
ENVIRONMENT_NAME:环境的名称。LOCATION:环境所在的区域。SCHEDULER_COUNT:调度器的数量。
例如:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
workloads_config {
scheduler {
count = 2
}
}
}
}
调整节点数量
您可以更改环境中的节点数。
此数量对应于环境中的 Airflow 工作器数量。 除了运行 Airflow 工作器之外,您的环境节点还运行 Airflow 调度器和其他环境组件。
控制台
在 Google Cloud 控制台中,前往 环境 页面。
在环境列表中,点击您的环境名称。环境详情 页面会打开。
转到环境配置 标签页。
在工作器节点 > 节点数 项中,点击修改。
在工作器节点配置 窗格的节点数 字段中,指定环境中的节点数。
点击保存 。
gcloud
--node-count 参数可用于控制环境中的节点数:
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--zone NODE_ZONE \
--node-count NODE_COUNT
替换以下内容:
ENVIRONMENT_NAME:环境的名称。LOCATION:环境所在的区域。NODE_COUNT:节点数。节点数下限为3。NODE_ZONE:环境虚拟机的 Compute Engine 可用区。
例如:
gcloud composer environments update example-environment \
--location us-central1 \
--zone us-central1-a \
--node-count 6
API
创建
environments.patchAPI 请求。在此请求中:
在参数
updateMask中,指定config.nodeCount掩码。在请求正文中,为您的环境指定节点数。
"config": {
"nodeCount": NODE_COUNT
}
替换以下内容:
NODE_COUNT:节点数。节点数下限为3。
例如:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.nodeCount
"config": {
"nodeCount": 6
}
Terraform
node_config 块中的 node_count 字段指定了环境中的节点数。
resource "google_composer_environment" "example" {
config {
node_config {
node_count = NODE_COUNT
}
}
替换以下内容:
NODE_COUNT:节点数。
例如:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
node_config {
node_count = 4
}
}
调整 Cloud SQL 实例的机器类型
您可以更改存储您环境的 Airflow 数据库的 Cloud SQL 实例的机器类型。
控制台
在 Google Cloud 控制台中,前往 环境 页面。
在环境列表中,点击您的环境名称。环境详情 页面会打开。
转到环境配置 标签页。
在资源 > Cloud SQL 机器类型 项中, 点击 修改。
在 Cloud SQL 配置 窗格的 Cloud SQL 机器类型 下拉列表中,选择环境的 Cloud SQL 实例的机器类型。
点击保存 。
gcloud
--cloud-sql-machine-type 参数可用于控制环境中 Cloud SQL 实例的机器类型。
运行以下 Google Cloud CLI 命令:
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--cloud-sql-machine-type SQL_MACHINE_TYPE
替换以下内容:
ENVIRONMENT_NAME:环境的名称。LOCATION:环境所在的区域。SQL_MACHINE_TYPE:Cloud SQL 实例的 机器类型。
例如:
gcloud composer environments update example-environment \
--location us-central1 \
--cloud-sql-machine-type db-n1-standard-2
API
创建
environments.patchAPI 请求。在此请求中:
在
updateMask参数中,指定config.databaseConfig.machineType掩码。在请求正文中,指定 Cloud SQL 实例的机器类型。
{
"config": {
"databaseConfig": {
"machineType": "SQL_MACHINE_TYPE"
}
}
}
替换以下内容:
例如:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.databaseConfig.machineType
{
"config": {
"databaseConfig": {
"machineType": "db-n1-standard-2"
}
}
}
Terraform
database_config 块中的 machine_type 字段指定了 Cloud SQL 实例的机器类型。
resource "google_composer_environment" "example" {
config {
database_config {
machine_type = "SQL_MACHINE_TYPE"
}
}
}
替换以下内容:
例如:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
database_config {
machine_type = "db-n1-standard-2"
}
}
调整网络服务器机器类型
您可以更改环境的 Airflow 网络服务器的机器类型。
控制台
在 Google Cloud 控制台中,前往 环境 页面。
在环境列表中,点击您的环境名称。环境详情 页面会打开。
转到环境配置 标签页。
在资源 > Web 服务器机器类型 项中, 点击 修改。
在Web 服务器配置 窗格的Web 服务器机器类型 下拉列表中,选择 Airflow Web 服务器的机器类型。
点击保存 。
gcloud
--web-server-machine-type 参数可用于控制环境中的 Airflow Web 服务器实例的机器类型。
运行以下 Google Cloud CLI 命令:
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--web-server-machine-type WS_MACHINE_TYPE
替换以下内容:
ENVIRONMENT_NAME:环境的名称。LOCATION:环境所在的区域。WS_MACHINE_TYPE:Airflow Web 服务器实例的机器类型。
例如:
gcloud composer environments update example-environment \
--location us-central1 \
--web-server-machine-type composer-n1-webserver-2
API
创建
environments.patchAPI 请求。在此请求中:
在
updateMask参数中,指定config.webServerConfig.machineType掩码。在请求正文中,指定 Web 服务器的机器类型。
{
"config": {
"webServerConfig": {
"machineType": "WS_MACHINE_TYPE"
}
}
}
替换以下内容:
例如:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.webServerConfig.machineType
{
"config": {
"webServerConfig": {
"machineType": "composer-n1-webserver-2"
}
}
}
Terraform
web_server_config 块中的 machine_type 字段指定了 Airflow Web 服务器实例的机器类型。
resource "google_composer_environment" "example" {
config {
web_server_config {
machine_type = "WS_MACHINE_TYPE"
}
}
}
替换以下内容:
例如:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
web_server_config {
machine_type = "composer-n1-webserver-2"
}
}