Cloud Composer 1 | Cloud Composer 2
本页面介绍如何在 Cloud Composer 1 中扩缩 Cloud Composer 环境。
如需了解环境扩缩的工作原理,请参阅环境扩缩。
纵向和横向扩缩
在 Cloud Composer 1 中,您无需为 Cloud Composer 和 Airflow 组件(例如工作器和调度器)定义特定的 CPU 和内存资源。而应为环境集群中的节点指定机器数量和类型。
横向扩缩选项:
纵向扩缩选项:
调整节点数量
您可以更改环境中的节点数。
此数量对应于环境中的 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.patch
API 请求。在此请求中:
在参数
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
}
}
调整调度器的数量
您的环境可以同时运行多个 Airflow 调度器。使用多个调度器在多个调度器实例之间分配负载,以实现更好的性能和可靠性。
您可以指定调度器数量,最多可指定环境中的节点数。增加调度器的数量并不总是可以提高 Airflow 性能。例如,仅使用一个调度器的性能可能优于使用两个调度器。如果额外的调度器未得到利用,则可能会发生这种情况,因而会占用环境的资源,而不会提升整体性能。实际的调度器性能取决于 Airflow 工作器的数量、在您的环境中运行的 DAG 和任务的数量,以及 Airflow 和环境的配置。
我们建议您先使用两个调度器,然后再监控环境的性能。如果您更改调度器的数量,则可以随时将环境扩缩回原始调度器的数量。
如需详细了解如何配置多个调度器,请参阅 Airflow 文档。
控制台
转到 Google Cloud 控制台中的环境页面:
选择您的环境。
转到环境配置标签页。
在资源 > 调度器数量项中,点击修改。
在调度器配置对话框的调度器数量字段中,为您的环境指定调度器数量。
点击保存。
gcloud
运行以下 Google Cloud CLI 命令:
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--scheduler-count SCHEDULER_COUNT
您需要将其中的:
ENVIRONMENT_NAME
替换为环境的名称。LOCATION
替换为环境所在的区域。SCHEDULER_COUNT
替换为调度器的数量。
示例:
gcloud composer environments update example-environment \
--location us-central1 \
--scheduler-count 2
API
创建
environments.patch
API 请求。在此请求中:
在参数
updateMask
中,指定config.softwareConfig.schedulerCount
掩码。在请求正文中,为您的环境指定节点数。
{
"config": {
"softwareConfig": {
"schedulerCount": SCHEDULER_COUNT
}
}
您需要将其中的:
SCHEDULER_COUNT
替换为调度器的数量。
示例:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.schedulerCount
{
"config": {
"softwareConfig": {
"schedulerCount": 2
}
}
Terraform
software_config
块中的 scheduler_count
字段指定了环境中的调度器的数量。
此字段仅适用于使用 Airflow 2 的 Cloud Composer 1 环境。
resource "google_composer_environment" "example" {
config {
software_config {
scheduler_count = SCHEDULER_COUNT
}
}
}
您需要将其中的:
SCHEDULER_COUNT
替换为调度器的数量。
示例:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
software_config {
scheduler_count = 2
}
}
}
调整 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.patch
API 请求。在此请求中:
在参数
updateMask
中,指定config.databaseConfig.machineType
掩码。在请求正文中,指定 Cloud SQL 实例的机器类型。
{
"config": {
"databaseConfig": {
"machineType": "SQL_MACHINE_TYPE"
}
}
}
您需要将其中的:
SQL_MACHINE_TYPE
替换为 Cloud SQL 实例的机器类型。
示例:
// 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"
}
}
}
您需要将其中的:
SQL_MACHINE_TYPE
替换为 Cloud SQL 实例的机器类型。
例如:
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 网络服务器实例的机器类型。
运行以下 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 网络服务器实例的机器类型。
示例:
gcloud composer environments update example-environment \
--location us-central1 \
--web-server-machine-type composer-n1-webserver-2
API
创建
environments.patch
API 请求。在此请求中:
在参数
updateMask
中,指定config.webServerConfig.machineType
掩码。在请求正文中,指定网络服务器的机器类型。
{
"config": {
"webServerConfig": {
"machineType": "WS_MACHINE_TYPE"
}
}
}
您需要将其中的:
WS_MACHINE_TYPE
替换为 Airflow 网络服务器实例的机器类型。
示例:
// 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 网络服务器实例的机器类型。
resource "google_composer_environment" "example" {
config {
web_server_config {
machine_type = "WS_MACHINE_TYPE"
}
}
}
您需要将其中的:
WS_MACHINE_TYPE
替换为 Airflow 网络服务器实例的机器类型。
示例:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
web_server_config {
machine_type = "composer-n1-webserver-2"
}
}