Masalah umum

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Halaman ini mencantumkan masalah umum Cloud Composer. Untuk informasi tentang perbaikan masalah, lihat Catatan rilis.

Operasi DAG pertama untuk file DAG yang diupload memiliki beberapa tugas yang gagal

Saat Anda mengupload file DAG, terkadang beberapa tugas pertama dari DAG pertama yang dijalankan gagal dengan error Unable to read remote log.... Masalah ini terjadi karena file DAG disinkronkan antara bucket lingkungan, worker Airflow, dan penjadwal Airflow di lingkungan Anda. Jika scheduler mendapatkan file DAG dan menjadwalkannya untuk dieksekusi oleh worker, dan jika worker belum memiliki file DAG, maka eksekusi tugas akan gagal.

Untuk mengurangi masalah ini, lingkungan dengan Airflow 2 dikonfigurasi untuk melakukan dua kali percobaan ulang untuk tugas yang gagal secara default. Jika gagal, tugas akan dicoba lagi dua kali dengan interval 5 menit.

Cloud Composer tidak akan terpengaruh oleh Kerentanan Apache Log4j 2 (CVE-2021-44228)

Sebagai respons terhadap Kerentanan Apache Log4j 2 (CVE-2021-44228), Cloud Composer telah melakukan penyelidikan mendetail dan kami yakin bahwa Cloud Composer tidak rentan terhadap eksploitasi ini.

UI Airflow terkadang tidak memuat ulang plugin setelah diubah

Jika plugin terdiri dari banyak file yang mengimpor modul lain, UI Airflow mungkin tidak dapat mengenali fakta bahwa plugin harus dimuat ulang. Dalam kasus seperti itu, mulai ulang server web Airflow di lingkungan Anda.

Error 504 saat mengakses UI Airflow

Anda dapat mengalami error 504 Gateway Timeout saat mengakses UI Airflow. Error ini dapat disebabkan oleh beberapa hal:

  • Masalah komunikasi sementara. Dalam hal ini, coba akses UI Airflow nanti. Anda juga dapat memulai ulang server web Airflow.

  • (Khusus Cloud Composer 3) Masalah konektivitas. Jika UI Airflow tidak tersedia secara permanen, dan error waktu tunggu atau 504 terjadi, pastikan lingkungan Anda dapat mengakses *.composer.googleusercontent.com.

  • (Khusus Cloud Composer 2) Masalah konektivitas. Jika UI Airflow tidak tersedia secara permanen, dan error waktu tunggu atau 504 terjadi, pastikan lingkungan Anda dapat mengakses *.composer.cloud.google.com. Jika Anda menggunakan Private Google Access dan mengirim traffic melalui IP Virtual private.googleapis.com, atau Kontrol Layanan VPC dan mengirim traffic melalui IP Virtual restricted.googleapis.com, pastikan Cloud DNS Anda juga dikonfigurasi untuk nama domain *.composer.cloud.google.com.

  • Server web Airflow tidak responsif. Jika error 504 terus terjadi, tetapi Anda masih dapat mengakses UI Airflow pada waktu tertentu, server web Airflow mungkin tidak merespons karena kelebihan beban. Berupaya meningkatkan parameter skala dan performa server web.

Error 502 saat mengakses UI Airflow

Error 502 Internal server exception menunjukkan bahwa UI Airflow tidak dapat melayani permintaan masuk. Error ini dapat disebabkan oleh beberapa hal:

  • Masalah komunikasi sementara. Coba akses UI Airflow nanti.

  • Gagal memulai server web. Untuk memulai, server web memerlukan file konfigurasi yang disinkronkan terlebih dahulu. Periksa log server web untuk menemukan entri log yang terlihat mirip dengan: GCS sync exited with 1: gcloud storage cp gs://<bucket-name>/airflow.cfg /home/airflow/gcs/airflow.cfg.tmp atau GCS sync exited with 1: gcloud storage cp gs://<bucket-name>/env_var.json.cfg /home/airflow/gcs/env_var.json.tmp. Jika Anda melihat error ini, periksa apakah file yang disebutkan dalam pesan error masih ada di bucket lingkungan.

    Jika item tersebut tidak sengaja dihapus (misalnya, karena kebijakan retensi dikonfigurasi), Anda dapat memulihkannya:

    1. Tetapkan variabel lingkungan baru di lingkungan Anda. Anda dapat menggunakan nama dan nilai variabel apa pun.

    2. Mengganti opsi konfigurasi Airflow. Anda dapat menggunakan opsi konfigurasi Airflow yang tidak ada.

Mengarahkan kursor ke instance tugas di tampilan Hierarki akan memunculkan TypeError yang tidak tertangkap

Di Airflow 2, tampilan Tree di UI Airflow terkadang tidak berfungsi dengan baik saat zona waktu non-default digunakan. Sebagai solusi untuk masalah ini, konfigurasi zona waktu secara eksplisit di UI Airflow.

Folder kosong di Scheduler dan Workers

Cloud Composer tidak secara aktif menghapus folder kosong dari pekerja dan penjadwal Airflow. Entitas tersebut mungkin dibuat sebagai hasil dari proses sinkronisasi bucket lingkungan saat folder ini ada di bucket dan akhirnya dihapus.

Rekomendasi: Sesuaikan DAG Anda agar siap melewati folder kosong tersebut.

Entitas tersebut pada akhirnya akan dihapus dari penyimpanan lokal penjadwal dan pekerja Airflow saat komponen ini dimulai ulang (misalnya, sebagai akibat dari operasi penskalaan atau pemeliharaan di cluster lingkungan Anda).

Dukungan untuk Kerberos

Cloud Composer tidak mendukung konfigurasi Kerberos Airflow.

Dukungan untuk class komputasi di Cloud Composer 2 dan Cloud Composer 3

Cloud Composer 3 dan Cloud Composer 2 hanya mendukung kelas komputasi tujuan umum. Artinya, menjalankan Pod yang meminta class komputasi lain (seperti Balanced atau Scale-Out) tidak dapat dilakukan.

Class tujuan umum memungkinkan menjalankan Pod yang meminta memori hingga 110 GB dan hingga 30 CPU (seperti yang dijelaskan dalam Permintaan Maksimum Class Komputasi.

Jika Anda ingin menggunakan arsitektur berbasis ARM atau memerlukan lebih banyak CPU dan Memori, Anda harus menggunakan class komputasi yang berbeda, yang tidak didukung dalam cluster Cloud Composer 3 dan Cloud Composer 2.

Rekomendasi: Gunakan GKEStartPodOperator untuk menjalankan Pod Kubernetes di cluster lain yang mendukung class komputasi yang dipilih. Jika Anda menjalankan Pod kustom yang memerlukan class komputasi yang berbeda, Pod tersebut juga harus berjalan di cluster non-Cloud Composer.

Penyimpanan Cloud SQL tidak dapat dikurangi

Cloud Composer menggunakan Cloud SQL untuk menjalankan database Airflow. Seiring waktu, penyimpanan disk untuk instance Cloud SQL dapat bertambah karena disk di-scale up agar sesuai dengan data yang disimpan oleh operasi Cloud SQL saat database Airflow bertambah.

Ukuran disk Cloud SQL tidak dapat diperkecil.

Sebagai solusi sementara, jika ingin menggunakan ukuran disk Cloud SQL terkecil, Anda dapat membuat ulang lingkungan Cloud Composer dengan snapshot.

Metrik Penggunaan Disk Database tidak berkurang setelah menghapus data dari Cloud SQL

Database relasional, seperti Postgres atau MySQL, tidak menghapus baris secara fisik saat baris tersebut dihapus atau diperbarui. Sebagai gantinya, tuple tersebut ditandai sebagai "tuple tidak aktif" untuk mempertahankan konsistensi data dan menghindari pemblokiran transaksi serentak.

MySQL dan Postgres menerapkan mekanisme untuk merebut kembali ruang setelah menghapus data.

Meskipun database dapat dipaksa untuk merebut kembali ruang disk yang tidak digunakan, hal ini merupakan operasi yang memakan banyak resource dan mengunci database sehingga Cloud Composer tidak tersedia. Oleh karena itu, sebaiknya gunakan mekanisme pembangunan untuk merebut kembali ruang yang tidak digunakan.

Akses diblokir: Error Otorisasi

Jika masalah ini memengaruhi pengguna, dialog Akses diblokir: Error Otorisasi berisi pesan Error 400: admin_policy_enforced.

Jika opsi Kontrol API > Aplikasi pihak ketiga yang tidak dikonfigurasi > Jangan izinkan pengguna mengakses aplikasi pihak ketiga diaktifkan di Google Workspace dan aplikasi Apache Airflow di Cloud Composer tidak diizinkan secara eksplisit, pengguna tidak dapat mengakses UI Airflow kecuali mereka mengizinkan aplikasi secara eksplisit.

Untuk mengizinkan akses, lakukan langkah-langkah yang diberikan di Mengizinkan akses ke UI Airflow di Google Workspace.

Loop login saat mengakses UI Airflow

Masalah ini mungkin disebabkan oleh:

Folder /data tidak tersedia di server web Airflow

Di Cloud Composer 2 dan Cloud Composer 3, server web Airflow dimaksudkan sebagai komponen yang sebagian besar hanya dapat dibaca dan Cloud Composer tidak menyinkronkan folder data/ ke komponen ini.

Terkadang, Anda mungkin ingin membagikan file umum di antara semua komponen Airflow, termasuk server web Airflow.

Solusi:

  • Gabungkan file yang akan dibagikan dengan server web ke dalam modul PYPI dan instal sebagai paket PYPI reguler. Setelah modul PYPI diinstal di lingkungan, file akan ditambahkan ke gambar komponen Airflow dan tersedia untuk komponen tersebut.

  • Tambahkan file ke folder plugins/. Folder ini disinkronkan ke server web Airflow.

Diagram waktu penguraian DAG yang tidak berkelanjutan dan ukuran kumpulan DAG dalam pemantauan

Diagram waktu parsing DAG yang tidak berkelanjutan dan ukuran DAG bag di dasbor pemantauan menunjukkan masalah dengan waktu parsing DAG yang lama (lebih dari 5 menit).

Grafik waktu penguraian DAG Airflow dan ukuran kumpulan DAG yang menampilkan serangkaian interval yang tidak berkelanjutan
Gambar 1. Grafik waktu penguraian DAG yang tidak berkelanjutan dan ukuran bag DAG (klik untuk memperbesar)

Solusi: Sebaiknya pertahankan total waktu penguraian DAG di bawah 5 menit. Untuk mengurangi waktu parsing DAG, ikuti pedoman penulisan DAG.

Log tugas muncul dengan penundaan

Gejala:

  • Di Cloud Composer 3, log tugas Airflow tidak langsung muncul dan tertunda selama beberapa menit.
  • Anda mungkin menemukan pesan Logs not found for Cloud Logging filter di log Airflow

Penyebab:

Jika lingkungan Anda menjalankan sejumlah besar tugas secara bersamaan, log tugas dapat tertunda karena ukuran infrastruktur lingkungan tidak cukup untuk memproses semua log dengan cukup cepat.

Solusi:

  • Pertimbangkan untuk meningkatkan ukuran infrastruktur lingkungan guna meningkatkan performa.
  • Mendistribusikan eksekusi DAG dari waktu ke waktu, sehingga tugas tidak dieksekusi pada saat yang sama.

Peningkatan waktu mulai untuk KubernetesPodOperator dan KubernetesExecutor

Pod yang dibuat dengan KubernetesPodOperator dan tugas yang dieksekusi dengan KubernetesExecutor mengalami peningkatan waktu mulai. Tim Cloud Composer sedang berupaya mencari solusi dan akan mengumumkan saat masalah ini telah diselesaikan.

Solusi Sementara:

  • Luncurkan Pod dengan lebih banyak CPU.
  • Jika memungkinkan, optimalkan gambar (lebih sedikit lapisan, ukuran lebih kecil).

Lingkungan dalam status ERROR setelah akun penagihan project dihapus atau dinonaktifkan, atau Cloud Composer API dinonaktifkan

Lingkungan Cloud Composer yang terpengaruh oleh masalah ini tidak dapat dipulihkan:

  • Setelah akun penagihan project dihapus atau dinonaktifkan, meskipun akun lain ditautkan kemudian.
  • Setelah Cloud Composer API dinonaktifkan di project, meskipun diaktifkan kembali.

Anda dapat melakukan hal berikut untuk mengatasi masalah ini:

  • Anda masih dapat mengakses data yang disimpan di bucket lingkungan Anda, tetapi lingkungan itu sendiri tidak dapat digunakan lagi. Anda dapat membuat lingkungan Cloud Composer baru, lalu mentransfer DAG dan data Anda.

  • Jika Anda ingin melakukan operasi apa pun yang membuat lingkungan Anda tidak dapat dipulihkan, pastikan untuk mencadangkan data Anda, misalnya, dengan membuat snapshot lingkungan. Dengan cara ini, Anda dapat membuat lingkungan lain dan mentransfer datanya dengan memuat snapshot ini.

Log untuk tugas Airflow tidak dikumpulkan jika [core]execute_tasks_new_python_interpreter disetel ke True

Cloud Composer tidak mengumpulkan log untuk tugas Airflow jika opsi konfigurasi Airflow [core]execute_tasks_new_python_interpreter ditetapkan ke True.

Solusi yang mungkin:

  • Hapus penggantian untuk opsi konfigurasi ini, atau tetapkan nilainya ke False.

Error saat menghapus Lampiran Jaringan ketika lingkungan dihapus

Jika beberapa lingkungan yang menggunakan lampiran jaringan yang sama dihapus secara bersamaan, beberapa operasi penghapusan akan gagal dengan error.

Gejala:

Error berikut akan dihasilkan:

Got error while removing Network Attachment: <error code>

Kode error yang dilaporkan dapat berupa Bad request: <resource> is not ready, atau Precondition failed: Invalid fingerprint.

Kemungkinan solusi:

  • Hapus lingkungan yang menggunakan lampiran jaringan yang sama satu per satu.

  • Nonaktifkan koneksi ke jaringan VPC untuk lingkungan Anda sebelum menghapusnya. Sebaiknya gunakan solusi ini untuk penghapusan lingkungan otomatis.

Langkah berikutnya