Umgebungen skalieren

Cloud Composer 1 | Cloud Composer 2

Auf dieser Seite wird beschrieben, wie Sie Cloud Composer-Umgebungen in Cloud Composer 2 skalieren.

Weitere Seiten zur Skalierung:

Vertikal und horizontal skalieren

Optionen für die horizontale Skalierung:

Optionen für die vertikale Skalierung:

Mindest- und Höchstzahl der Worker anpassen

Sie können die Mindest- und Höchstanzahl an Workern für Ihre Umgebung festlegen. Cloud Composer skaliert Ihre Umgebung automatisch innerhalb der festgelegten Limits. Sie können diese Limits jederzeit anpassen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf:

    Zur Seite „Umgebungen“

  2. Wählen Sie Ihre Umgebung aus.

  3. Rufen Sie den Tab Umgebungskonfiguration auf.

  4. Klicken Sie unter Ressourcen > Konfiguration der Arbeitslasten auf Bearbeiten.

  5. Passen Sie im Dialogfeld Konfiguration der Arbeitslasten im Abschnitt Worker-Autoscaling die Limits für Airflow-Worker an:

    • Geben Sie im Feld Mindestzahl an Workern die Anzahl der Airflow-Worker an, die Ihre Umgebung immer ausführen muss. Die Zahl der Worker in Ihrer Umgebung unterschreitet diesen Wert nie, auch nicht, wenn eine niedrigere Anzahl an Workern die Last bewältigen kann.

    • Geben Sie im Feld Maximalzahl der Worker die maximale Anzahl der Airflow-Worker an, die in Ihrer Umgebung ausgeführt werden können. Die Zahl der Worker in Ihrer Umgebung überschreitet diesen Wert nie, auch wenn eine höhere Anzahl an Workern zur Verarbeitung der Last erforderlich ist.

  6. Klicken Sie auf Speichern.

gcloud

Führen Sie den folgenden Google Cloud CLI-Befehl aus:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --min-workers WORKERS_MIN \
  --max-workers WORKERS_MAX

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • WORKERS_MIN durch die Mindestzahl an Airflow-Workern, die Ihre Umgebung ausführen kann. Die Anzahl der Worker in Ihrer Umgebung unterschreitet diesen Wert nicht, auch wenn eine geringere Anzahl von Workern die Auslastung bewältigen kann.
  • WORKERS_MAX durch die Maximalzahl an Airflow-Workern, die Ihre Umgebung ausführen kann. Die Anzahl der Worker in Ihrer Umgebung überschreitet diesen Wert nie, auch wenn eine höhere Anzahl an Workern zur Verarbeitung der Last erforderlich ist.

Beispiel:

gcloud composer environments update example-environment \
  --location us-central1 \
  --min-workers 2 \
  --max-workers 6

API

  1. Erstellen Sie eine API-Anfrage environments.patch.

  2. In dieser Anfrage:

    1. Geben Sie im updateMask-Parameter die config.softwareConfig.workloadsConfig.worker.minCount,config.softwareConfig.workloadsConfig.worker.maxCount-Maske an.

    2. Geben Sie im Anfragetext in den Feldern minCount und maxCount die neuen Worker-Limits an.

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": WORKERS_MIN,
      "maxCount": WORKERS_MAX
    }
  }
}

Ersetzen Sie:

  • WORKERS_MIN durch die Mindestzahl an Airflow-Workern, die Ihre Umgebung ausführen kann. Die Anzahl der Worker in Ihrer Umgebung unterschreitet diesen Wert nicht, auch wenn eine geringere Anzahl von Workern die Auslastung bewältigen kann.
  • WORKERS_MAX durch die Maximalzahl an Airflow-Workern, die Ihre Umgebung ausführen kann. Die Anzahl der Worker in Ihrer Umgebung überschreitet diesen Wert nie, auch wenn eine höhere Anzahl an Workern zur Verarbeitung der Last erforderlich ist.

Beispiel:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.worker.minCount,
// config.workloadsConfig.worker.maxCount

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": 2,
      "maxCount": 6
    }
  }
}

Terraform

Die Felder min_count und max_count im workloadsConfig.worker-Block geben die minimale und maximale Anzahl an Workern in Ihrer Umgebung an:

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

  config {

    workloads_config {
      worker {
        min_count = WORKERS_MIN
        max_count = WORKERS_MAX
      }
    }

  }
}

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • WORKERS_MIN durch die Mindestzahl an Airflow-Workern, die Ihre Umgebung ausführen kann. Die Anzahl der Worker in Ihrer Umgebung unterschreitet diesen Wert nicht, auch wenn eine geringere Anzahl von Workern die Auslastung bewältigen kann.
  • WORKERS_MAX durch die Maximalzahl an Airflow-Workern, die Ihre Umgebung ausführen kann. Die Anzahl der Worker in Ihrer Umgebung überschreitet diesen Wert nie, auch wenn eine höhere Anzahl an Workern zur Verarbeitung der Last erforderlich ist.

Beispiel:

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

  config {

    workloads_config {
      worker {
        min_count = 2
        max_count = 6
      }
    }

  }
}

Anzahl der Planer anpassen

In Ihrer Umgebung können mehrere Airflow-Planer gleichzeitig ausgeführt werden. Mit mehreren Planern lässt sich die Last auf verschiedene Planerinstanzen verteilen, um die Leistung und Zuverlässigkeit zu verbessern.

Sie können bis zu 10 Planer in Ihrer Umgebung haben.

Durch die Erhöhung der Anzahl der Planer wird die Airflow-Leistung nicht immer verbessert. Wenn Sie beispielsweise nur einen Planer haben, ist die Leistung möglicherweise besser als zwei. Dies kann passieren, wenn der zusätzliche Planer nicht verwendet wird und somit Ressourcen Ihrer Umgebung verbraucht, ohne dass dies Auswirkungen auf die Gesamtleistung hat. Die tatsächliche Leistung des Planers hängt von der Anzahl der Airflow-Worker, der Anzahl der in der Umgebung ausgeführten DAGs und Aufgaben sowie der Konfiguration von Airflow und der Umgebung ab.

Wir empfehlen, mit zwei Planern zu beginnen und dann die Leistung Ihrer Umgebung zu überwachen. Wenn Sie die Anzahl der Planer ändern, können Sie Ihre Umgebung jederzeit wieder auf die ursprüngliche Anzahl von Planern skalieren.

Weitere Informationen zur Konfiguration mehrerer Planer finden Sie in der Airflow-Dokumentation.

So ändern Sie die Anzahl der Planer für Ihre Umgebung:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf:

    Zur Seite „Umgebungen“

  2. Wählen Sie Ihre Umgebung aus.

  3. Rufen Sie den Tab Umgebungskonfiguration auf.

  4. Klicken Sie unter Ressourcen > Konfiguration der Arbeitslasten auf Bearbeiten.

  5. Legen Sie im Dialogfeld Konfiguration der Arbeitslasten in der Drop-down-Liste Anzahl der Planer die Anzahl der Planer für Ihre Umgebung fest.

  6. Klicken Sie auf Speichern.

gcloud

Führen Sie den folgenden Google Cloud CLI-Befehl aus:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --scheduler-count SCHEDULER_COUNT

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • SCHEDULER_COUNT durch die Anzahl der Planer.

Beispiel:

gcloud composer environments update example-environment \
  --location us-central1 \
  --scheduler-count 2

API

  1. Erstellen Sie eine environments.patch-API-Anfrage.

  2. In dieser Anfrage:

    1. Geben Sie im updateMask-Parameter die config.softwareConfig.workloadsConfig.scheduler-Maske an.

    2. Geben Sie im Anfragetext im count-Feld die Anzahl der Planer an.

"config": {
  "workloadsConfig": {
    "scheduler": {
      "count": SCHEDULER_COUNT
    }
  }
}

Ersetzen Sie:

  • SCHEDULER_COUNT durch die Anzahl der Planer.

Beispiel:

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

"config": {
  "workloadsConfig": {
    "scheduler": {
      "count": 2
    }
  }
}

Terraform

Das count-Feld im workloads_config.scheduler-Block gibt die Anzahl der Planer in Ihrer Umgebung an:

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

  config {

    workloads_config {
      scheduler {
        count = SCHEDULER_COUNT
      }
    }

  }
}

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • SCHEDULER_COUNT durch die Anzahl der Planer.

Beispiel:

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

  config {

    workloads_config {

      scheduler {
        count = 2
      }

    }
  }
}

Anzahl der Trigger anpassen

Sie können die Anzahl der Trigger auf null setzen, benötigen jedoch mindestens eine Triggerer-Instanz in Ihrer Umgebung (oder mindestens zwei in Umgebungen mit extrem hoher Ausfallsicherheit), um verzögerte Operatoren in Ihren DAGs verwenden zu können.

Abhängig von der Einstellung für die Ausfallsicherheit Ihrer Umgebung gibt es verschiedene Konfigurationsmöglichkeiten für die Anzahl der Triggerer:

  • Standardausfallsicherheit: Sie können bis zu 10 Trigger ausführen
  • Hohe Ausfallsicherheit: mindestens 2 bis maximal 10 Trigger

Auch wenn die Anzahl der Trigger auf null gesetzt ist, wird eine Triggerer-Pod-Definition erstellt und im Cluster Ihrer Umgebung sichtbar. Es werden jedoch keine Triggerer-Arbeitslasten ausgeführt.

Wenn Sie mehr als null Trigger haben, werden sie wie andere Umgebungskomponenten mit Compute-SKUs für Cloud Composer abgerechnet.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen“

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Rufen Sie den Tab Umgebungskonfiguration auf.

  4. Klicken Sie unter Ressourcen > Arbeitslasten auf Bearbeiten. Der Bereich Arbeitslastkonfiguration wird geöffnet.

  5. Geben Sie im Bereich Trigger im Feld Anzahl der Trigger die Anzahl der Trigger in Ihrer Umgebung ein.

    Wenn Sie für Ihre Umgebung mindestens einen Trigger festgelegt haben, verwenden Sie die Felder CPU und Arbeitsspeicher, um die Ressourcenzuweisung für Ihre Trigger zu konfigurieren.

  6. Klicken Sie auf Speichern und warten Sie, bis die Umgebung aktualisiert wurde.

gcloud

Führen Sie den folgenden Google Cloud CLI-Befehl aus:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --triggerer-count TRIGGERER_COUNT
  --triggerer-cpu TRIGGERER_CPU,
  --triggerer-memory TRIGGERER_MEMORY

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • TRIGGERER_COUNT durch die Anzahl der Trigger.

    • Verwenden Sie für Umgebungen mit Standardausfallsicherheit einen Wert zwischen 0 und 10.
    • Verwenden Sie 0 oder einen Wert zwischen 2 und 10 für Umgebungen mit extrem hoher Ausfallsicherheit.
  • TRIGGERER_CPU durch die Anzahl der CPUs für einen Trigger in vCPU-Einheiten. Dieses Flag ist optional. Wenn Sie es nicht angeben, wird der Standardwert 0.5 vCPU verwendet. Zulässige Werte: 0.5, 0.75, 1.

  • TRIGGERER_MEMORY durch die Größe des Arbeitsspeichers für einen Trigger. Dieses Flag ist optional. Wenn es nicht angegeben ist, wird der Standardwert 0.5 GB verwendet.

    Der erforderliche Mindestarbeitsspeicher entspricht der Anzahl der CPUs, die den Triggern zugewiesen sind. Der maximal zulässige Wert entspricht der Anzahl der Triggerer-CPUs multipliziert mit 6,5.

    Wenn Sie beispielsweise das Flag --triggerer-cpu auf 1 setzen, ist der Mindestwert für --triggerer-memory 1 und der Höchstwert 6.5.

Beispiele:

  • Deaktivieren Sie Trigger, indem Sie die Triggeranzahl auf 0 setzen. Für diesen Vorgang müssen Sie keine CPU oder keinen Arbeitsspeicher für die Trigger angeben.

    gcloud composer environments update example-environment \
      --location us-central1 \
      --triggerer-count 0
    
  • Auf mehrere Triggerer-Instanzen skalieren:

    gcloud composer environments update example-environment \
      --location us-central1 \
      --triggerer-count 4 \
      --triggerer-cpu 1 \
      --triggerer-memory 1GB
    

API

  1. Erstellen Sie eine environments.patch-API-Anfrage.

  2. Geben Sie im Abfrageparameter updateMask die Maske config.workloadsConfig.triggerer an.

  3. Verwenden Sie im Anfragetext das folgende Objekt

  "config": {
    "workloadsConfig": {
      "triggerer": {
        "count": TRIGGERER_COUNT,
        "cpu": TRIGGERER_CPU,
        "memoryGb": TRIGGERER_MEMORY
      }
    }
  }

Ersetzen Sie:

  • TRIGGERER_COUNT durch die Anzahl der Trigger.

    • Verwenden Sie für Umgebungen mit Standardausfallsicherheit einen Wert zwischen 0 und 10.
    • Verwenden Sie 0 oder einen Wert zwischen 2 und 10 für Umgebungen mit extrem hoher Ausfallsicherheit.

      Wenn Sie mindestens einen Trigger verwenden, müssen Sie auch die Werte für TRIGGERER_CPU und TRIGGERER_MEMORY angeben:

      • Legen Sie für TRIGGERER_CPU die Anzahl der CPUs für einen Trigger in vCPU-Einheiten fest. Zulässige Werte: 0.5, 0.75, 1.

      • Legen Sie für TRIGGERER_MEMORY die Arbeitsspeichermenge für einen Trigger fest. Der erforderliche Mindestarbeitsspeicher entspricht der Anzahl der CPUs, die den Triggern zugewiesen sind. Der maximal zulässige Wert entspricht der Anzahl der Triggerer-CPUs multipliziert mit 6,5.

        Wenn Sie beispielsweise TRIGGERER_CPU auf 1 setzen, ist der Mindestwert für TRIGGERER_MEMORY 1 und der Höchstwert 6.5.

Beispiele:

  • Deaktivieren Sie Trigger, indem Sie die Triggeranzahl auf 0 setzen. Für diesen Vorgang müssen Sie keine CPU oder keinen Arbeitsspeicher für die Trigger angeben.

    // PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
    // locations/us-central1/environments/example-environment?updateMask=
    // config.workloadsConfig.triggerer
    "config": {
      "workloadsConfig": {
        "triggerer": {
          "count": 0
        }
      }
    }
    
  • Auf mehrere Triggerer-Instanzen skalieren:

    // PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
    // locations/us-central1/environments/example-environment?updateMask=
    // config.workloadsConfig.triggerer
    "config": {
      "workloadsConfig": {
        "triggerer": {
          "count": 4,
          "cpu": 1,
          "memoryGb": 1
        }
      }
    }
    

Terraform

Das Feld count im Block workloads_config.triggerer gibt die Anzahl der Trigger in Ihrer Umgebung an:

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

  config {

    workloads_config {
      triggerer {
        count = TRIGGERER_COUNT
      }
    }

  }
}

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • TRIGGERER_COUNT durch die Anzahl der Trigger.

Beispiel:

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

  config {

    workloads_config {

      triggerer {
        count = 1
      }

    }
  }
}

Anpassung von Skalierungs- und Leistungsparametern von Workern, Planern, Triggern und Webservern

Sie können die Menge an CPUs, den Arbeitsspeicher und den Speicherplatz angeben, die von Ihrer Umgebung verwendet werden. Auf diese Weise können Sie neben der horizontalen Skalierung durch die Verwendung mehrerer Worker und Planer die Leistung Ihrer Umgebung erhöhen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen“

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Rufen Sie den Tab Umgebungskonfiguration auf.

  4. Klicken Sie unter Ressourcen > Arbeitslasten auf Bearbeiten. Der Bereich Arbeitslastkonfiguration wird geöffnet.

  5. Wählen Sie in den Drop-down-Listen Anzahl der Planer und Anzahl der Trigger die Anzahl der Planer und Trigger in Ihrer Umgebung aus.

  6. Geben Sie im Bereich Konfiguration der Arbeitslasten in den Feldern CPU, Arbeitsspeicher und Speicher die Anzahl der CPUs, den Arbeitsspeicher und den Speicher für Airflow-Planer, Trigger, Webserver und Worker an.

  7. Klicken Sie auf Speichern.

gcloud

Folgende Argumente steuern die CPU-, Arbeitsspeicher- und Speicherplatzparameter von Airflow-Planern, Webservern und Workern. Alle Planer und Worker verwenden die angegebene Anzahl an Ressourcen.

  • --scheduler-cpu gibt die Anzahl der CPUs für einen Airflow-Planer an.
  • --scheduler-memory gibt die Größe des Arbeitsspeichers für einen Airflow-Planer an.
  • --scheduler-storage gibt die Menge des Speicherplatzes für einen Airflow-Planer an.
  • --triggerer-cpu gibt die Anzahl der CPUs für einen Airflow-Triggerer an. Zulässige Werte: 0.5, 0.75, 1. Wenn Sie die Triggerer-CPU anpassen möchten, sind auch die Flags --triggerer-memory und --triggerer-count erforderlich.
  • --triggerer-memory gibt die Arbeitsspeichermenge für einen Airflow-Trigger an. Wenn Sie den Triggerer-Arbeitsspeicher anpassen möchten, sind auch die Flags --triggerer-cpu und --triggerer-count erforderlich.

    Der erforderliche Mindestarbeitsspeicher entspricht der Anzahl der CPUs, die den Triggern zugewiesen sind. Der maximal zulässige Wert entspricht der Anzahl der Triggerer-CPUs multipliziert mit 6,5.

    Wenn Sie beispielsweise das Flag --triggerer-cpu auf 1 setzen, ist der Mindestwert für --triggerer-memory 1 und der Höchstwert 6.5.

  • --web-server-cpu gibt die Anzahl der CPUs für den Airflow-Webserver an.

  • --web-server-memory gibt die Größe des Arbeitsspeichers für den Airflow-Webserver an.

  • --web-server-storage gibt den Speicherplatz für den Airflow-Webserver an.

  • --worker-cpu gibt die Anzahl der CPUs für einen Airflow-Worker an.

  • --worker-memory gibt die Größe des Arbeitsspeichers für einen Airflow-Worker an.

  • --worker-storage gibt den Speicherplatz für einen Airflow-Worker an.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --scheduler-cpu SCHEDULER_CPU \
    --scheduler-memory SCHEDULER_MEMORY \
    --scheduler-storage SCHEDULER_STORAGE \
    --triggerer-count TRIGGERER_COUNT \
    --triggerer-cpu TRIGGERER_CPU \
    --triggerer-memory TRIGGERER_MEMORY \
    --web-server-cpu WEB_SERVER_CPU \
    --web-server-memory WEB_SERVER_MEMORY \
    --web-server-storage WEB_SERVER_STORAGE \
    --worker-cpu WORKER_CPU \
    --worker-memory WORKER_MEMORY \
    --worker-storage WORKER_STORAGE

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • SCHEDULER_CPU durch die Anzahl der CPUs für einen Planer in vCPU-Einheiten.
  • SCHEDULER_MEMORY durch die Größe des Arbeitsspeichers für einen Planer.
  • SCHEDULER_STORAGE durch die Laufwerksgröße für einen Planer.
  • TRIGGERER_COUNT durch die Anzahl der Trigger. Dieser Wert ist auch dann erforderlich, wenn Sie die aktuelle Anzahl der Trigger nicht ändern, sondern nur deren CPU- oder Arbeitsspeicherzuweisung anpassen möchten.
  • TRIGGERER_CPU durch die Anzahl der CPUs für einen Trigger in vCPU-Einheiten.
  • TRIGGERER_MEMORY durch die Größe des Arbeitsspeichers für einen Trigger.
  • WEB_SERVER_CPU durch die Anzahl der CPUs für den Webserver in vCPU-Einheiten.
  • WEB_SERVER_MEMORY durch die Größe des Arbeitsspeichers für den Webserver.
  • WEB_SERVER_STORAGE durch die Größe des Arbeitsspeichers für den Webserver.
  • WORKER_CPU durch die Anzahl der CPUs für einen Worker in vCPU-Einheiten.
  • WORKER_MEMORY durch die Größe des Arbeitsspeichers für einen Worker.
  • WORKER_STORAGE durch die Laufwerksgröße für einen Worker.

Beispiel:

gcloud composer environments update example-environment \
    --location us-central1 \
    --scheduler-cpu 0.5 \
    --scheduler-memory 2.5GB\
    --scheduler-storage 2GB \
    --triggerer-count 2 \
    --triggerer-cpu 1 \
    --triggerer-memory 1GB \
    --web-server-cpu 1 \
    --web-server-memory 2.5GB \
    --web-server-storage 2GB \
    --worker-cpu 1 \
    --worker-memory 2GB \
    --worker-storage 2GB

API

  1. Erstellen Sie eine environments.patch-API-Anfrage.

  2. In dieser Anfrage:

    1. Geben Sie im updateMask-Parameter die Felder an, die Sie aktualisieren möchten. Wenn Sie beispielsweise alle Parameter für Planer aktualisieren möchten, geben Sie die Maske config.workloadsConfig.scheduler.cpu,config.workloadsConfig.scheduler.memoryGb,config.workloadsConfig.scheduler.storageGB an.

    Wenn Sie Triggerparameter aktualisieren, geben Sie die Maske config.workloadsConfig.triggerer an. Es ist nicht möglich, Masken für einzelne Parameter des Triggers anzugeben.

    1. Geben Sie im Anfragetext die Parameter für Skalierung und Leistung an.
  "config": {
    "workloadsConfig": {
      "scheduler": {
        "cpu": SCHEDULER_CPU,
        "memoryGb": SCHEDULER_MEMORY,
        "storageGb": SCHEDULER_STORAGE
      },
      "triggerer": {
        "count": TRIGGERER_COUNT,
        "cpu": TRIGGERER_CPU,
        "memoryGb": TRIGGERER_MEMORY
      }
      "webServer": {
        "cpu": WEB_SERVER_CPU,
        "memoryGb": WEB_SERVER_MEMORY,
        "storageGb": WEB_SERVER_STORAGE
      },
      "worker": {
        "cpu": WORKER_CPU,
        "memoryGb": WORKER_MEMORY,
        "storageGb": WORKER_STORAGE
      }
    }
  }

Ersetzen Sie:

  • SCHEDULER_CPU durch die Anzahl der CPUs für einen Planer in vCPU-Einheiten.
  • SCHEDULER_MEMORY durch die Größe des Arbeitsspeichers für einen Planer in GB.
  • SCHEDULER_STORAGE durch die Laufwerksgröße für einen Planer in GB.
  • TRIGGERER_COUNT durch die Anzahl der Trigger. Dieser Parameter ist auch dann erforderlich, wenn Sie die aktuelle Anzahl der Trigger nicht ändern, sondern nur deren CPU- oder Arbeitsspeicherzuweisung anpassen möchten.
  • TRIGGERER_CPU durch die Anzahl der CPUs für einen Trigger in vCPU-Einheiten. Zulässige Werte: 0.5, 0.75, 1.
  • TRIGGERER_MEMORY durch die Größe des Arbeitsspeichers für einen Trigger.

    Der erforderliche Mindestarbeitsspeicher entspricht der Anzahl der CPUs, die den Triggern zugewiesen sind. Der maximal zulässige Wert entspricht der Anzahl der Triggerer-CPUs multipliziert mit 6,5.

    Wenn Sie beispielsweise TRIGGERER_CPU auf 1 setzen, ist der Mindestwert für TRIGGERER_MEMORY 1 und der Höchstwert 6.5.

  • WEB_SERVER_CPU durch die Anzahl der CPUs für den Webserver in vCPU-Einheiten.

  • WEB_SERVER_MEMORY durch die Größe des Arbeitsspeichers für den Webserver in GB.

  • WEB_SERVER_STORAGE durch die Laufwerksgröße für den Webserver in GB.

  • WORKER_CPU durch die Anzahl der CPUs für einen Worker in vCPU-Einheiten.

  • WORKER_MEMORY durch die Größe des Arbeitsspeichers für einen Worker in GB.

  • WORKER_STORAGE durch die Laufwerksgröße für einen Worker in GB.

Beispiel:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.scheduler.cpu,
// config.workloadsConfig.scheduler.memoryGB,
// config.workloadsConfig.scheduler.storageGb,
// config.workloadsConfig.triggerer
// config.workloadsConfig.webServer.cpu,
// config.workloadsConfig.webServer.memoryGb,
// config.workloadsConfig.webServer.storageGb,
// config.workloadsConfig.worker.cpu,
// config.workloadsConfig.worker.memoryGb,
// config.workloadsConfig.worker.storageGb

"config": {
  "workloadsConfig": {
    "scheduler": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    },
    "triggerer": {
      "count": 1,
      "cpu": 1,
      "memoryGb": 1
    },
    "webServer": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    },
    "worker": {
      "cpu": 1,
      "memoryGb": 2,
      "storageGb": 2
    }
  }
}

Terraform

Die folgenden Blöcke im workloadsConfig-Block steuern die CPU-, Arbeitsspeicher- und Speicherplatzparameter von Airflow-Planern, Webservern, Triggern und Workern. Jeder Planer, Trigger und Worker verwendet die angegebene Menge an Ressourcen.

  • Das scheduler.cpu-Feld gibt die Anzahl der CPUs für einen Airflow-Planer an.
  • Das scheduler.memory_gb-Feld gibt die Größe des Arbeitspeichers für einen Airflow-Planer an.
  • Das scheduler.storage_gb-Feld gibt die Größe des Speicherplatzes für einen Planer an.
  • Das Feld triggerer.cpu gibt die Anzahl der CPUs für einen Airflow-Trigger an.
  • Das Feld triggerer.memory_gb gibt die Größe des Arbeitsspeichers für einen Airflow-Triggerer an.
  • Das Feld web_server.cpu gibt die Anzahl der CPUs für den Airflow-Webserver an.
  • Das web_server.memory_gb-Feld gibt die Größe des Arbeitspeichers für den Airflow-Webserver an.
  • Das Feld web_server.storage_gb gibt die Größe des Speicherplatzes für den Airflow-Webserver an.
  • Das Feld worker.cpu gibt die Anzahl der CPUs für einen Airflow-Worker an.
  • Das Feld worker.memory_gb gibt die Größe des Arbeitspeichers für einen Airflow-Worker an.
  • Das Feld worker.storage_gb gibt die Größe des Speicherplatzes für einen Airflow-Worker an.
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {

      scheduler {
        cpu = SCHEDULER_CPU
        memory_gb = SCHEDULER_MEMORY
        storage_gb = SCHEDULER_STORAGE
      }
      triggerer {
        cpu = TRIGGERER_CPU
        memory_gb = TRIGGERER_MEMORY
        count = 1
      }
      web_server {
        cpu = WEB_SERVER_CPU
        memory_gb = WEB_SERVER_MEMORY
        storage_gb = WEB_SERVER_STORAGE
      }
      worker {
        cpu = WORKER_CPU
        memory_gb = WORKER_MEMORY
        storage_gb = WORKER_STORAGE
      }
    }

  }
}

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • SCHEDULER_CPU durch die Anzahl der CPUs für einen Planer in vCPU-Einheiten.
  • SCHEDULER_MEMORY durch die Größe des Arbeitsspeichers für einen Planer in GB.
  • SCHEDULER_STORAGE durch die Laufwerksgröße für einen Planer in GB.
  • TRIGGERER_CPU durch die Anzahl der CPUs für einen Trigger in vCPU-Einheiten.
  • TRIGGERER_MEMORY durch die Größe des Arbeitsspeichers für einen Triggerer in GB.
  • WEB_SERVER_CPU durch die Anzahl der CPUs für den Webserver in vCPU-Einheiten.
  • WEB_SERVER_MEMORY durch die Größe des Arbeitsspeichers für den Webserver in GB.
  • WEB_SERVER_STORAGE durch die Laufwerksgröße für den Webserver in GB.
  • WORKER_CPU durch die Anzahl der CPUs für einen Worker in vCPU-Einheiten.
  • WORKER_MEMORY durch die Größe des Arbeitsspeichers für einen Worker in GB.
  • WORKER_STORAGE durch die Laufwerksgröße für einen Worker in GB.

Beispiel:

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

  config {

    workloads_config {

      scheduler {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
      triggerer {
        cpu = 0.5
        memory_gb = 0.5
        count = 1
      }
      web_server {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
      worker {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
    }

  }
}

Umgebungsgröße anpassen

Mit der Größe der Umgebung werden die Leistungsparameter der verwalteten Cloud Composer-Infrastruktur gesteuert, in der die Airflow-Datenbank enthalten ist. Wählen Sie gegebenenfalls eine größere Umgebungsgröße aus, wenn Sie eine große Anzahl von DAGs und Aufgaben ausführen möchten.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf:

    Zur Seite „Umgebungen“

  2. Wählen Sie Ihre Umgebung aus.

  3. Rufen Sie den Tab Umgebungskonfiguration auf.

  4. Klicken Sie im Element Ressourcen > Kerninfrastruktur auf Bearbeiten.

  5. Geben Sie im Dialogfeld Kerninfrastruktur im Feld Umgebungsgröße die Größe der Umgebung an.

  6. Klicken Sie auf Speichern.

gcloud

Das --environment-size-Argument steuert die Umgebungsgröße:

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --environment-size ENVIRONMENT_SIZE

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • ENVIRONMENT_SIZE mit small, medium oder large.

Beispiel:

gcloud composer environments update example-environment \
    --location us-central1 \
    --environment-size medium

API

  1. Erstellen Sie eine environments.patch-API-Anfrage.

  2. In dieser Anfrage:

    1. Geben Sie im updateMask-Parameter die config.environmentSize-Maske an.

    2. Geben Sie im Anfragetext die Größe der Umgebung an.

  "config": {
    "environmentSize": "ENVIRONMENT_SIZE"
  }

Ersetzen Sie:

  • ENVIRONMENT_SIZE durch die Umgebungsgröße, ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM oder ENVIRONMENT_SIZE_LARGE.

Beispiel:

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

"config": {
  "environmentSize": "ENVIRONMENT_SIZE_MEDIUM"
}

Terraform

Das environment_size-Feld im config-Block steuert die Umgebungsgröße:

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

  config {

    environment_size = "ENVIRONMENT_SIZE"

  }
}

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • ENVIRONMENT_SIZE durch die Umgebungsgröße, ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM oder ENVIRONMENT_SIZE_LARGE.

Beispiel:

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

  config {

    environment_size = "ENVIRONMENT_SIZE_SMALL"

    }
  }
}

Nächste Schritte