Bekannte Probleme

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Auf dieser Seite werden bekannte Probleme mit Cloud Composer aufgeführt. Informationen zu Fehlerkorrekturen finden Sie in den Versionshinweisen.

Der erste DAG wird für eine hochgeladene DAG-Datei mit mehreren fehlgeschlagenen Aufgaben ausgeführt.

Wenn Sie eine DAG-Datei hochladen, schlagen manchmal die ersten Aufgaben des ersten DAG mit dem Fehler Unable to read remote log... fehl. Dieses Problem tritt auf, weil die DAG-Datei zwischen dem Bucket Ihrer Umgebung, den Airflow-Workern und den Airflow-Planern Ihrer Umgebung synchronisiert wird. Wenn der Planer die DAG-Datei abruft und plant, sie von einem Worker ausführen zu lassen, und wenn der Worker noch nicht die DAG-Datei hat, schlägt die Aufgabenausführung fehl.

Um dieses Problem zu beheben, sind Umgebungen mit Airflow 2 standardmäßig so konfiguriert, dass zwei Wiederholungen für eine fehlgeschlagene Aufgabe ausgeführt werden. Wenn eine Aufgabe fehlschlägt, wird sie zweimal mit Intervallen von 5 Minuten wiederholt.

Cloud Composer sollte nicht von der Sicherheitslücke in Apache Log4j 2 (CVE-2021-44228) betroffen sein.

Als Reaktion auf die Apache Log4j 2-Sicherheitslücke (CVE-2021-44228) haben wir eine detaillierte Untersuchung durchgeführt und sind der Ansicht, dass Cloud Composer nicht anfällig für diesen Exploit ist.

Manchmal wird ein Plug-in in der Airflow-Benutzeroberfläche nach einer Änderung nicht neu geladen.

Wenn ein Plug-in aus vielen Dateien besteht, in denen andere Module importiert werden, kann es sein, dass die Airflow-Benutzeroberfläche nicht erkennt, dass ein Plug-in neu geladen werden sollte. Starten Sie in diesem Fall den Airflow-Webserver Ihrer Umgebung neu.

Fehler 504 beim Zugriff auf die Airflow-Benutzeroberfläche

Beim Zugriff auf die Airflow-UI kann der Fehler 504 Gateway Timeout auftreten. Dieser Fehler kann verschiedene Ursachen haben:

  • Vorübergehendes Kommunikationsproblem. Versuchen Sie in diesem Fall, später auf die Airflow-Benutzeroberfläche zuzugreifen. Sie können auch den Airflow-Webserver neu starten.

  • (Nur Cloud Composer 3) Verbindungsproblem. Wenn die Airflow-UI dauerhaft nicht verfügbar ist und Zeitüberschreitungs- oder 504-Fehler generiert werden, prüfen Sie, ob Ihre Umgebung auf *.composer.googleusercontent.com zugreifen kann.

  • (Nur Cloud Composer 2) Verbindungsproblem. Wenn die Airflow-UI dauerhaft nicht verfügbar ist und Zeitüberschreitungs- oder 504-Fehler generiert werden, prüfen Sie, ob Ihre Umgebung auf *.composer.cloud.google.com zugreifen kann. Wenn Sie privater Google-Zugriff verwenden und Traffic über private.googleapis.com virtuelle IP-Adressen senden oder VPC Service Controls verwenden und Traffic über restricted.googleapis.com virtuelle IP-Adressen senden, muss Cloud DNS auch für *.composer.cloud.google.com-Domainnamen konfiguriert sein.

  • Der Airflow-Webserver reagiert nicht. Wenn der Fehler 504 weiterhin auftritt, Sie aber zu bestimmten Zeiten auf die Airflow-UI zugreifen können, ist der Airflow-Webserver möglicherweise überlastet und reagiert nicht mehr. Versuchen Sie, die Skalierungs- und Leistungsparameter des Webservers zu erhöhen.

Fehler 502 beim Zugriff auf die Airflow-Benutzeroberfläche

Der Fehler 502 Internal server exception gibt an, dass die Airflow-Benutzeroberfläche eingehende Anfragen nicht verarbeiten kann. Dieser Fehler kann verschiedene Ursachen haben:

  • Vorübergehendes Kommunikationsproblem. Versuchen Sie später noch einmal, auf die Airflow-Benutzeroberfläche zuzugreifen.

  • Der Webserver konnte nicht gestartet werden. Damit der Webserver gestartet werden kann, müssen zuerst Konfigurationsdateien synchronisiert werden. Prüfen Sie die Webserverprotokolle auf Logeinträge, die so aussehen: GCS sync exited with 1: gcloud storage cp gs://<bucket-name>/airflow.cfg /home/airflow/gcs/airflow.cfg.tmp oder GCS sync exited with 1: gcloud storage cp gs://<bucket-name>/env_var.json.cfg /home/airflow/gcs/env_var.json.tmp. Wenn diese Fehler angezeigt werden, prüfen Sie, ob die in den Fehlermeldungen genannten Dateien noch im Bucket der Umgebung vorhanden sind.

    Falls sie versehentlich entfernt wurden (z. B. weil eine Aufbewahrungsrichtlinie konfiguriert wurde), können Sie sie wiederherstellen:

    1. Legen Sie eine neue Umgebungsvariable in Ihrer Umgebung fest. Sie können einen beliebigen Variablennamen und -wert verwenden.

    2. Überschreiben Sie eine Airflow-Konfigurationsoption. Sie können eine nicht vorhandene Airflow-Konfigurationsoption verwenden.

Wenn Sie in der Baumansicht den Mauszeiger auf eine Aufgabeninstanz bewegen, wird ein nicht abgefangener TypeError ausgegeben

In Airflow 2 funktioniert die Baumansicht in der Airflow-UI manchmal nicht richtig, wenn eine nicht standardmäßige Zeitzone verwendet wird. Als Behelfslösung für dieses Problem können Sie die Zeitzone explizit in der Airflow-UI konfigurieren.

Leere Ordner in Scheduler und Workern

In Cloud Composer werden leere Ordner nicht aktiv von Airflow-Workern und -Planern entfernt. Solche Einheiten werden möglicherweise im Rahmen der Synchronisierung des Umgebungs-Buckets erstellt, wenn diese Ordner im Bucket vorhanden waren und schließlich entfernt wurden.

Empfehlung: Passen Sie Ihre DAGs so an, dass sie solche leeren Ordner überspringen.

Solche Entitäten werden schließlich aus den lokalen Speichern von Airflow-Planern und ‑Workern entfernt, wenn diese Komponenten neu gestartet werden (z. B. aufgrund von Herunterskalierungen oder Wartungsvorgängen im Cluster Ihrer Umgebung).

Unterstützung für Kerberos

Cloud Composer unterstützt die Airflow-Kerberos-Konfiguration nicht.

Unterstützung für Compute-Klassen in Cloud Composer 2 und Cloud Composer 3

Cloud Composer 3 und Cloud Composer 2 unterstützen nur die Allzweck- Compute-Klasse. Das bedeutet, dass die Ausführung von Pods, die andere Compute-Klassen anfordern (z. B. Balanced oder Scale-Out), nicht möglich ist.

In der Klasse general-purpose können Pods ausgeführt werden, die bis zu 110 GB Arbeitsspeicher und bis zu 30 CPUs anfordern (siehe Maximale Anforderungen für Compute-Klassen).

Wenn Sie eine ARM-basierte Architektur verwenden möchten oder mehr CPU und Arbeitsspeicher benötigen, müssen Sie eine andere Compute-Klasse verwenden, die in Cloud Composer 3- und Cloud Composer 2-Clustern nicht unterstützt wird.

Empfehlung: Verwenden Sie GKEStartPodOperator, um Kubernetes-Pods in einem anderen Cluster auszuführen, der die ausgewählte Compute-Klasse unterstützt. Wenn Sie benutzerdefinierte Pods ausführen, die eine andere Compute-Klasse erfordern, müssen sie auch in einem Nicht-Cloud Composer-Cluster ausgeführt werden.

Cloud SQL-Speicher kann nicht reduziert werden

Cloud Composer verwendet Cloud SQL zum Ausführen der Airflow-Datenbank. Im Laufe der Zeit kann der Festplattenspeicher für die Cloud SQL-Instanz anwachsen, da die Festplatte skaliert wird, um die von Cloud SQL-Vorgängen gespeicherten Daten aufzunehmen, wenn die Airflow-Datenbank wächst.

Die Cloud SQL-Festplattengröße kann nicht verkleinert werden.

Wenn Sie die kleinste Cloud SQL-Festplattengröße verwenden möchten, können Sie Cloud Composer-Umgebungen mit Snapshots neu erstellen.

Der Messwert „Datenbank-Festplattennutzung“ wird nach dem Entfernen von Datensätzen aus Cloud SQL nicht reduziert.

In relationalen Datenbanken wie Postgres oder MySQL werden Zeilen beim Löschen oder Aktualisieren nicht physisch entfernt. Stattdessen werden sie als „gelöschte Tupel“ markiert, um die Datenkonsistenz aufrechtzuerhalten und gleichzeitige Transaktionen nicht zu blockieren.

Sowohl MySQL als auch Postgres implementieren Mechanismen zum Freigeben von Speicherplatz nach dem Löschen von Datensätzen.

Es ist zwar möglich, die Datenbank zu zwingen, nicht verwendeten Speicherplatz freizugeben, dies ist jedoch ein ressourcenintensiver Vorgang, der die Datenbank zusätzlich sperrt und Cloud Composer nicht verfügbar macht. Daher wird empfohlen, sich auf die Build-Mechanismen zu verlassen, um den nicht verwendeten Speicherplatz zurückzugewinnen.

Zugriff blockiert: Autorisierungsfehler

Wenn ein Nutzer von diesem Problem betroffen ist, enthält das Dialogfeld Zugriff gesperrt: Autorisierungsfehler die Meldung Error 400: admin_policy_enforced.

Wenn in Google Workspace die Option API-Steuerelemente > Nicht konfigurierte Drittanbieter-Apps > Nutzer dürfen nicht auf Drittanbieter-Apps zugreifen aktiviert ist und die Apache Airflow in Cloud Composer-App nicht explizit zugelassen ist, können Nutzer nicht auf die Airflow-Benutzeroberfläche zugreifen, es sei denn, sie lassen die Anwendung explizit zu.

Führen Sie die Schritte unter Zugriff auf die Airflow-Benutzeroberfläche in Google Workspace zulassen aus, um den Zugriff zu ermöglichen.

Anmeldeschleife beim Zugriff auf die Airflow-UI

Dieses Problem kann folgende Ursachen haben:

Der Ordner „/data“ ist im Airflow-Webserver nicht verfügbar.

In Cloud Composer 2 und Cloud Composer 3 ist der Airflow-Webserver hauptsächlich eine schreibgeschützte Komponente und Cloud Composer synchronisiert den Ordner data/ nicht mit dieser Komponente.

Manchmal möchten Sie möglicherweise gemeinsame Dateien für alle Airflow-Komponenten freigeben, einschließlich des Airflow-Webservers.

Lösung

  • Packen Sie die Dateien, die mit dem Webserver geteilt werden sollen, in ein PYPI-Modul und installieren Sie es als reguläres PYPI-Paket. Nachdem das PYPI-Modul in der Umgebung installiert wurde, werden die Dateien den Images der Airflow-Komponenten hinzugefügt und sind für sie verfügbar.

  • Fügen Sie dem Ordner plugins/ Dateien hinzu. Dieser Ordner wird mit dem Airflow-Webserver synchronisiert.

Diagramme für nicht kontinuierliche DAG-Parsing-Zeiten und DAG-Bag-Größe im Monitoring

Diagramme für nicht kontinuierliche DAG-Parsing-Zeiten und die DAG-Bag-Größe im Monitoring-Dashboard weisen auf Probleme mit langen DAG-Parsing-Zeiten (mehr als 5 Minuten) hin.

Diagramme für Airflow-DAG-Parsing-Zeiten und DAG-Bag-Größe mit einer Reihe von nicht kontinuierlichen Intervallen
Abbildung 1. Diagramme für nicht kontinuierliche DAG-Parsingzeiten und DAG-Bag-Größe (zum Vergrößern klicken)

Lösung:Wir empfehlen, die Gesamtzeit für das DAG-Parsen unter 5 Minuten zu halten. Um die DAG-Parsing-Zeit zu verkürzen, folgen Sie den Richtlinien zum Schreiben von DAGs.

Aufgabenlogs werden mit Verzögerung angezeigt

Symptom:

  • In Cloud Composer 3 werden Airflow-Tasklogs nicht sofort angezeigt, sondern mit einer Verzögerung von einigen Minuten.
  • Möglicherweise finden Sie Logs not found for Cloud Logging filter-Meldungen in den Airflow-Logs.

Ursache:

Wenn in Ihrer Umgebung eine große Anzahl von Aufgaben gleichzeitig ausgeführt wird, können sich Aufgabenlogs verzögern, da die Infrastruktur der Umgebung nicht groß genug ist, um alle Logs schnell genug zu verarbeiten.

Lösungen:

  • Erwägen Sie, die Infrastrukturgröße der Umgebung zu erhöhen, um die Leistung zu steigern.
  • Verteilen Sie DAG-Ausführungen über die Zeit, damit Aufgaben nicht gleichzeitig ausgeführt werden.

Längere Startzeiten für KubernetesPodOperator und KubernetesExecutor

Bei Pods, die mit KubernetesPodOperator erstellt wurden, und bei Aufgaben, die mit KubernetesExecutor ausgeführt werden, sind die Startzeiten länger. Das Cloud Composer-Team arbeitet an einer Lösung und wird bekannt geben, wenn das Problem behoben ist.

Problemumgehungen:

  • Pods mit mehr CPU starten
  • Optimieren Sie Bilder nach Möglichkeit (weniger Ebenen, kleinere Größe).

Die Umgebung hat den Status „ERROR“, nachdem das Rechnungskonto des Projekts gelöscht oder deaktiviert wurde oder die Cloud Composer API deaktiviert wurde.

Cloud Composer-Umgebungen, die von diesen Problemen betroffen sind, können nicht wiederhergestellt werden:

  • Nachdem das Rechnungskonto des Projekts gelöscht oder deaktiviert wurde, auch wenn später ein anderes Konto verknüpft wurde.
  • Nachdem die Cloud Composer API im Projekt deaktiviert wurde, auch wenn sie später wieder aktiviert wurde.

So können Sie das Problem beheben:

  • Sie können weiterhin auf Daten in den Buckets Ihrer Umgebung zugreifen. Die Umgebungen selbst können jedoch nicht mehr verwendet werden. Sie können eine neue Cloud Composer-Umgebung erstellen und dann Ihre DAGs und Daten übertragen.

  • Wenn Sie einen der Vorgänge ausführen möchten, durch die Ihre Umgebungen nicht mehr wiederhergestellt werden können, sollten Sie Ihre Daten sichern, z. B. indem Sie einen Snapshot der Umgebung erstellen. So können Sie eine weitere Umgebung erstellen und ihre Daten übertragen, indem Sie diesen Snapshot laden.

Logs für Airflow-Aufgaben werden nicht erfasst, wenn [core]execute_tasks_new_python_interpreter auf „True“ gesetzt ist

Cloud Composer erfasst keine Logs für Airflow-Aufgaben, wenn die Airflow-Konfigurationsoption [core]execute_tasks_new_python_interpreter auf True festgelegt ist.

Mögliche Lösung:

  • Entfernen Sie die Überschreibung für diese Konfigurationsoption oder legen Sie ihren Wert auf False fest.

Fehler beim Entfernen der Netzwerkverbindung beim Löschen einer Umgebung

Wenn mehrere Umgebungen, die denselben Netzwerkanhang verwenden, gleichzeitig gelöscht werden, schlagen einige Löschvorgänge mit einem Fehler fehl.

Symptome:

Der folgende Fehler wird generiert:

Got error while removing Network Attachment: <error code>

Der gemeldete Fehlercode kann Bad request: <resource> is not ready oder Precondition failed: Invalid fingerprint sein.

Mögliche Problemumgehungen:

Nächste Schritte