Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Auf dieser Seite wird erläutert, wie Sie Wartungsfenster für Ihre Umgebungen definieren.
Wartungsfenster
Ein Wartungsfenster ist ein Zeitraum, in dem Cloud Composer Wartungsvorgänge ausführen darf. Sie können beispielsweise dafür sorgen, dass kritische Aufgaben nicht unterbrochen werden, indem Sie Wartungsfenster außerhalb der DAG-Zeitplanzeiten angeben.
Mit Wartungsfenstern können Sie die Zeiträume steuern, in denen Wartungsarbeiten für Ihre Umgebung durchgeführt werden können:
Wenn Sie benutzerdefinierte Wartungsfenster für Ihre Umgebung definieren, führt Cloud Composer die Wartung während dieser Zeiträume durch.
Wenn Sie keine benutzerdefinierten Wartungsfenster für Ihre Umgebung definieren oder einen leeren Wert angeben, führt Cloud Composer die Wartung während der Standardwartungsfenster durch.
Funktionsweise von Wartungsfenstern
So funktionieren Wartungsfenster:
Für Wartungsvorgänge müssen mindestens 12 Stunden pro Woche eingeplant werden.
Sie können mehrere Zeitblöcke verwenden, aber jeder muss mindestens 4 Stunden dauern.
Ihre Umgebung bleibt während der Wartungsfenster verfügbar. Einige Komponenten Ihrer Umgebung sind während der Wartungsarbeiten möglicherweise vorübergehend nicht verfügbar.
Die 12 Stunden sind erforderlich, damit Cloud Composer genügend Zeit hat, alle Wartungsvorgänge zu planen und auszuführen. Das bedeutet nicht, dass Wartungsvorgänge 12 Stunden dauern oder jede Woche stattfinden.
Sie können Ihre DAGs weiterhin während Wartungsfenstern ausführen, sofern es akzeptabel ist, dass einige Aufgaben unterbrochen und wiederholt werden können. Wenn Sie DAGs während Wartungsfenstern ausführen, müssen Sie Wiederholungsversuche für Aufgaben aktivieren. Sie können Aufgabenwiederholungen auf Airflow-Konfigurations-, DAG- oder Aufgabenebene konfigurieren.
Aufgaben, die weniger als 24 Stunden dauern, sind in der Regel nicht von Wartungsvorgängen betroffen. Für sie müssen jedoch Wiederholungsversuche aktiviert sein, damit sie Neustarts des Schedulers überstehen. Der Planer kann während der Standardvorgänge von Cloud Composer außerhalb von Wartungsfenstern neu gestartet werden.
Cloud Composer informiert Airflow-Worker darüber, dass eine Wartungsoperation bevorsteht. Ein Airflow-Worker schließt bereits gestartete Aufgaben ab und nimmt keine neuen Aufgaben an. Diese neuen Aufgaben werden von Airflow-Workern ausgeführt, die nicht gewartet werden.
Wenn Sie eine Umgebung mit extrem hoher Ausfallsicherheit verwenden, werden die Airflow-Komponenten Ihrer Umgebung wahrscheinlich zu unterschiedlichen Zeiten während eines Wartungsvorgangs neu gestartet. Das hängt vom Typ des Wartungsvorgangs ab. Insgesamt wird durch die Verwendung einer hoch resilienten Umgebung die Ausfallzeit Ihrer Umgebung während der Wartungsvorgänge reduziert.
Wartungsvorgänge haben die folgenden Auswirkungen auf Ihre Umgebung:
Die Airflow-UI ist möglicherweise vorübergehend nicht verfügbar.
Cloud Composer führt möglicherweise einen automatischen Infrastruktur-Upgradevorgang durch, wenn Upgrades verfügbar sind.
Einige Parameter Ihrer Umgebung können möglicherweise vorübergehend nicht geändert werden.
Einige Airflow-Aufgaben, deren Ausführung länger als 24 Stunden dauert, können unterbrochen werden. Nach Abschluss des Wartungsvorgangs werden Airflow-Zeitpläne für diese Aufgaben wiederholt (sofern nicht anders konfiguriert).
Standardwartungsfenster
Standardmäßige Wartungsfenster in Cloud Composer 3 werden so definiert:
- Alle Zeiten werden in der lokalen Zeitzone der Region angegeben, in der sich Ihre Umgebung befindet, wobei die Sommerzeit ignoriert wird.
- Dienstag, Mittwoch, Donnerstag und Freitag sind Wartungsfenster von 00:00:00 bis 02:00:00 Uhr.
- Samstags, sonntags und montags sind Wartungsfenster von 00:00:00 bis 04:00:00 Uhr.
Wartung außerhalb von Wartungsfenstern
In den folgenden Fällen führt Cloud Composer möglicherweise Wartungsarbeiten außerhalb der konfigurierten Wartungsfenster durch:
In Notsituationen, z. B. wenn eine kritische Sicherheitslücke behoben werden muss, können einige Wartungsvorgänge außerhalb der regulären Wartungsfenster durchgeführt werden.
Wenn Cloud Composer 30 Tage lang keine regulären Wartungsvorgänge während der Wartungsfenster ausführen konnte, werden kritische Wartungsvorgänge außerhalb der angegebenen Wartungsfenster ausgeführt. Dies ist ein Fallback-Mechanismus für Fälle, in denen Wartungsfenster falsch konfiguriert sind und Cloud Composer wiederholt keine Wartung für eine Umgebung durchführen kann.
Wartungsfenster einsetzen
Wartungsvorgänge können sich auf die Ausführung Ihrer DAGs und Airflow-Aufgaben auswirken. Daher empfehlen wir Ihnen Folgendes:
Definieren Sie Wartungsfenster für Ihre Cloud Composer-Umgebungen.
Planen Sie DAG-Ausführungen für außerhalb der angegebenen Wartungsfenster, indem Sie die Parameter
start_dateundschedulein Ihren DAGs verwenden.
Wartungsfenster für neue Umgebungen angeben
Sie können Wartungsfenster angeben, wenn Sie eine Umgebung erstellen. Weitere Informationen finden Sie unter Umgebungen erstellen.
Wartungsfenster für vorhandene Umgebungen angeben
Console
So definieren oder ändern Sie Wartungsfenster für eine vorhandene Umgebung: Aktualisieren Sie die Umgebung:
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Wählen Sie Ihre Umgebung aus.
Rufen Sie den Tab Umgebungskonfiguration auf.
Klicken Sie neben dem Eintrag Wartungsfenster auf Bearbeiten.
Klicken Sie im Kästchen Wartungsfenster das Kästchen Benutzerdefinierte Zeit für Wartungsfenster festlegen an.
Legen Sie Startzeit, Zeitzone, Tage und Länge fest, sodass die kombinierte Zeit für den angegebenen Zeitplan beträgt mindestens 12 Stunden in einem 7-tägigen rollierenden Zeitfenster. Zum Beispiel bietet ein Zeitraum von vier Stunden jeden Montag, Mittwoch und Freitag die erforderliche Zeitmenge.
Klicken Sie auf Speichern und warten Sie, bis die Umgebung aktualisiert wurde.
gcloud
Beim Aktualisieren einer Umgebung definieren die folgenden Argumente Wartungsfensterparameter:
--maintenance-window-startlegt den Beginn eines Wartungsfensters fest.--maintenance-window-endlegt das Ende eines Wartungsfensters fest.--maintenance-window-recurrencelegt die Wiederholung des Wartungsfensters fest.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--maintenance-window-start 'DATETIME_START' \
--maintenance-window-end 'DATETIME_END' \
--maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'
Ersetzen Sie:
ENVIRONMENT_NAMEdurch den Namen der Umgebung.DATETIME_STARTdurch das Startdatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert.DATETIME_ENDdurch das Enddatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert. Das angegebene Datum und die angegebene Uhrzeit müssen nach dem Startdatum liegen.MAINTENANCE_RECURRENCEmit einer RFC 5545 RRULE für Wiederholungsversuche von Wartungsfenstern. Cloud Composer unterstützt zwei Formate:Das Format
FREQ=DAILYgibt eine tägliche Wiederholung an.Das Format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAgibt eine Wiederholung an ausgewählten Wochentagen an.
Im folgenden Beispiel wird ein Wartungsfenster von 6 Stunden zwischen 01:00 und 07:00 Uhr (UTC) an Mittwochen, Samstagen und Sonntagen angegeben. Das Datum 1. Januar 2023 wird ignoriert.
gcloud composer environments update example-environment \
--location us-central1 \
--maintenance-window-start '2023-01-01T01:00:00Z' \
--maintenance-window-end '2023-01-01T07:00:00Z' \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'
API
Erstellen Sie eine API-Anfrage
environments.patch.In dieser Anfrage:
Geben Sie im
updateMask-Parameter dieconfig.maintenanceWindow-Maske an.Geben Sie im Anfragetext die Parameter für Wartungsfenster an.
{
"config": {
"maintenanceWindow": {
"startTime": "DATETIME_START",
"endTime": "DATETIME_END",
"recurrence": "MAINTENANCE_RECURRENCE"
}
}
}
Ersetzen Sie:
DATETIME_STARTdurch das Startdatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert.DATETIME_ENDdurch das Enddatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert. Das angegebene Datum und die angegebene Uhrzeit müssen nach dem Startdatum liegen.MAINTENANCE_RECURRENCEmit einer RFC 5545 RRULE für Wiederholungsversuche von Wartungsfenstern. Cloud Composer unterstützt zwei Formate:- Das Format
FREQ=DAILYgibt eine tägliche Wiederholung an. - Das Format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAgibt eine Wiederholung an ausgewählten Wochentagen an.
- Das Format
Im folgenden Beispiel wird ein Wartungsfenster von 6 Stunden zwischen 01:00 und 07:00 Uhr (UTC) an Mittwochen, Samstagen und Sonntagen angegeben. Das Datum 1. Januar 2023 wird ignoriert.
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.maintenanceWindow
{
"config": {
"maintenanceWindow": {
"startTime": "2023-01-01T01:00:00Z",
"endTime": "2023-01-01T07:00:00Z",
"recurrence": "FREQ=WEEKLY;BYDAY=SU,WE,SA"
}
}
}
Terraform
Im Block maintenance_window werden die Wartungsfenster für Ihre Umgebung angegeben:
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
maintenance_window {
start_time = "DATETIME_START"
end_time = "DATETIME_END"
recurrence = "MAINTENANCE_RECURRENCE"
}
}
}
Ersetzen Sie:
ENVIRONMENT_NAMEdurch den Namen der Umgebung.LOCATIONdurch die Region, in der sich die Umgebung befindet.DATETIME_STARTdurch das Startdatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert.DATETIME_ENDdurch das Enddatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert. Das angegebene Datum und die angegebene Uhrzeit müssen nach dem Startdatum liegen.MAINTENANCE_RECURRENCEmit einer RFC 5545 RRULE für Wiederholungsversuche von Wartungsfenstern. Cloud Composer unterstützt zwei Formate:- Das Format
FREQ=DAILYgibt eine tägliche Wiederholung an. - Das Format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAgibt eine Wiederholung an ausgewählten Wochentagen an.
- Das Format
Im folgenden Beispiel wird ein Wartungsfenster von 6 Stunden zwischen 01:00 und 07:00 Uhr (UTC) an Mittwochen, Samstagen und Sonntagen angegeben. Das Datum 1. Januar 2023 wird ignoriert.
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
maintenance_window {
start_time = "2023-01-01T01:00:00Z"
end_time = "2023-01-01T07:00:00Z"
recurrence = "FREQ=WEEKLY;BYDAY=SU,WE,SA"
}
}
}