Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)
Halaman ini mencantumkan masalah umum Managed Airflow. Untuk mengetahui informasi tentang perbaikan masalah, lihat Catatan rilis.
Beberapa masalah memengaruhi versi sebelumnya, dan dapat diperbaiki dengan mengupgrade lingkungan Anda.
Rentang alamat non-RFC 1918 didukung sebagian untuk Pod dan Service
Managed Airflow bergantung pada GKE untuk memberikan dukungan bagi alamat non-RFC 1918 untuk Pod dan Service. Hanya daftar rentang Non-RFC 1918 berikut yang didukung di Managed Airflow:
- 100.64.0.0/10
- 192.0.0.0/24
- 192.0.2.0/24
- 192.88.99.0/24
- 198.18.0.0/15
- 198.51.100.0/24
- 203.0.113.0/24
- 240.0.0.0/4
Label lingkungan yang ditambahkan selama update tidak sepenuhnya diterapkan
Saat Anda memperbarui label lingkungan, label tersebut tidak diterapkan ke VM Compute Engine di cluster lingkungan. Sebagai solusinya, Anda dapat menerapkan label secara manual.
Tidak dapat membuat lingkungan Managed Airflow dengan batasan kebijakan organisasi/compute.disableSerialPortLogging diterapkan
Pembuatan lingkungan Managed Airflow akan gagal jika
kebijakan organisasi constraints/compute.disableSerialPortLogging
diterapkan pada project target.
Diagnosis
Untuk mengetahui apakah Anda terpengaruh oleh masalah ini, ikuti prosedur berikut:
Buka menu GKE di konsolGoogle Cloud . Buka menu GKE
Kemudian, pilih cluster yang baru dibuat. Periksa error berikut:
Not all instances running in IGM after 123.45s.
Expect <number of desired instances in IGM>. Current errors:
[CONDITION_NOT_MET]: Instance '<generated instance name>' creation failed:
Constraint constraints/compute.disableSerialPortLogging violated for
project <target project number>.
Solusi:
Nonaktifkan kebijakan organisasi pada project tempat lingkungan Managed Airflow akan dibuat.
Kebijakan organisasi selalu dapat dinonaktifkan di level project meskipun resource induk (organisasi atau folder) mengaktifkannya. Lihat halaman Menyesuaikan kebijakan untuk batasan boolean untuk mengetahui detail selengkapnya.
Menggunakan filter pengecualian
Menggunakan filter pengecualian untuk log port serial akan mencapai tujuan yang sama dengan menonaktifkan kebijakan organisasi, karena akan ada log serial console di Logging. Untuk mengetahui detail selengkapnya, lihat halaman Filter pengecualian.
Penggunaan Deployment Manager untuk mengelola resource Google Cloud yang dilindungi oleh Kontrol Layanan VPC
Managed Airflow (Legacy Gen 1) dan Managed Airflow (Gen 2) versi 2.0.x menggunakan Deployment Manager untuk membuat komponen lingkungan Managed Airflow.
Pada Desember 2020, Anda mungkin telah menerima informasi bahwa Anda mungkin perlu melakukan konfigurasi Kontrol Layanan VPC tambahan agar dapat menggunakan Deployment Manager untuk mengelola resource yang dilindungi oleh Kontrol Layanan VPC.
Kami ingin mengklarifikasi bahwa tidak ada tindakan yang diperlukan dari pihak Anda jika Anda menggunakan Managed Airflow dan Anda tidak menggunakan Deployment Manager secara langsung untuk mengelola resource Google Cloud yang disebutkan dalam pengumuman Deployment Manager.
Deployment Manager menampilkan informasi tentang fitur yang tidak didukung
Anda mungkin melihat peringatan berikut di tab Deployment Manager:
The deployment uses actions, which are an unsupported feature. We recommend
that you avoid using actions.
Untuk deployment Deployment Manager yang dimiliki oleh Managed Airflow, Anda dapat mengabaikan peringatan ini.
Tidak dapat menghapus lingkungan setelah clusternya dihapus
Masalah ini berlaku untuk Managed Airflow (Legacy Gen 1) dan Managed Airflow (Gen 2) versi 2.0.x.
Jika Anda menghapus cluster GKE lingkungan sebelum lingkungan itu sendiri, upaya untuk menghapus lingkungan akan menghasilkan error berikut:
Got error "" during CP_DEPLOYMENT_DELETING [Rerunning Task. ]
Untuk menghapus lingkungan saat clusternya sudah dihapus:
Di konsol Google Cloud , buka halaman Deployment Manager.
Temukan semua deployment yang ditandai dengan label:
goog-composer-environment:<environment-name>goog-composer-location:<environment-location>.
Anda akan melihat dua deployment yang ditandai dengan label yang dijelaskan:
- Deployment bernama
<environment-location>-<environment-name-prefix>-<hash>-sd - Deployment bernama
addons-<uuid>
Hapus secara manual resource yang masih tercantum dalam dua deployment ini dan ada dalam project (misalnya, topik dan langganan Pub/Sub). Untuk melakukannya:
Pilih deployment.
Klik Hapus.
Pilih opsi Delete 2 deployments and all resources created by them, such as VMs, load balancers and disks, lalu klik Delete all.
Operasi penghapusan gagal, tetapi resource yang tersisa akan dihapus.
Hapus deployment menggunakan salah satu opsi berikut:
Di konsol Google Cloud , pilih kedua deployment lagi. Klik Delete, lalu pilih opsi Delete 2 deployments, but keep resources created by them.
Jalankan perintah gcloud untuk menghapus deployment dengan kebijakan
ABANDON:gcloud deployment-manager deployments delete addons-<uuid> \ --delete-policy=ABANDON gcloud deployment-manager deployments delete <location>-<env-name-prefix>-<hash>-sd \ --delete-policy=ABANDON
Peringatan tentang entri duplikat tugas 'echo' yang termasuk dalam DAG 'echo-airflow_monitoring'
Anda mungkin melihat entri berikut di log Airflow:
in _query db.query(q) File "/opt/python3.6/lib/python3.6/site-packages/MySQLdb/
connections.py", line 280, in query _mysql.connection.query(self, query)
_mysql_exceptions.IntegrityError: (1062, "Duplicate entry
'echo-airflow_monitoring-2020-10-20 15:59:40.000000' for key 'PRIMARY'")
Anda dapat mengabaikan entri log ini, karena error ini tidak memengaruhi DAG Airflow dan pemrosesan tugas.
Kami berupaya meningkatkan kualitas layanan Airflow Terkelola untuk menghapus peringatan ini dari log Airflow.
Pembuatan lingkungan gagal di project dengan Identity-Aware Proxy API yang ditambahkan ke perimeter Kontrol Layanan VPC
Dalam project dengan Kontrol Layanan VPC yang diaktifkan,
akun cloud-airflow-prod@ memerlukan akses eksplisit
di perimeter keamanan Anda untuk membuat lingkungan.
Untuk membuat lingkungan, Anda dapat menggunakan salah satu solusi berikut:
Jangan tambahkan Cloud Identity-Aware Proxy API dan Identity-Aware Proxy TCP API ke perimeter keamanan.
Tambahkan akun layanan
cloud-airflow-prod@sebagai anggota perimeter keamanan Anda menggunakan konfigurasi berikut dalam file kondisi YAML:- members: - serviceAccount:cloud-airflow-prod@
Pembuatan atau upgrade lingkungan Managed Airflow gagal saat kebijakan compute.vmExternalIpAccess dinonaktifkan
Masalah ini berlaku untuk lingkungan Managed Airflow (Legacy Gen 1) dan Managed Airflow (Gen 2).
Cluster GKE milik Managed Airflow yang dikonfigurasi dalam mode IP Publik memerlukan konektivitas eksternal untuk VM-nya. Oleh karena itu,
kebijakan compute.vmExternalIpAccess tidak dapat melarang pembuatan VM
dengan alamat IP eksternal. Untuk mengetahui informasi selengkapnya tentang kebijakan organisasi ini, lihat Batasan kebijakan organisasi.
Eksekusi DAG pertama untuk file DAG yang diupload memiliki beberapa tugas yang gagal
Saat Anda mengupload file DAG, terkadang beberapa tugas pertama dari eksekusi DAG pertama untuk file tersebut gagal dengan error Unable to read remote log.... Masalah
ini terjadi karena file DAG disinkronkan antara
bucket lingkungan, worker Airflow, dan scheduler Airflow di
lingkungan Anda. Jika scheduler mendapatkan file DAG dan menjadwalkannya untuk dieksekusi
oleh worker, dan jika worker belum memiliki file DAG, eksekusi tugas
akan gagal.
Untuk mengurangi masalah ini, lingkungan dengan Airflow 2 dikonfigurasi untuk melakukan dua percobaan ulang untuk tugas yang gagal secara default. Jika gagal, tugas akan dicoba ulang dua kali dengan interval 5 menit.
Pengumuman tentang penghapusan dukungan untuk Beta API yang tidak digunakan lagi dari versi GKE
Managed Airflow mengelola cluster GKE yang dimiliki oleh Managed Airflow yang mendasarinya. Kecuali jika Anda secara eksplisit menggunakan API tersebut di DAG dan kode Anda, Anda dapat mengabaikan pengumuman tentang penghentian penggunaan GKE API. Managed Airflow menangani migrasi apa pun, jika diperlukan.
Managed Airflow seharusnya tidak terpengaruh oleh Kerentanan Apache Log4j 2 (CVE-2021-44228)
Sebagai respons terhadap Kerentanan Apache Log4j 2 (CVE-2021-44228), Managed Airflow telah melakukan investigasi mendetail dan kami yakin bahwa Managed Airflow tidak rentan terhadap eksploitasi ini.
Worker atau scheduler Airflow mungkin mengalami masalah saat mengakses bucket Cloud Storage lingkungan
Managed Airflow menggunakan gcsfuse untuk mengakses folder /data di bucket lingkungan dan untuk menyimpan log tugas Airflow ke direktori /logs (jika diaktifkan). Jika gcsfuse kelebihan beban atau bucket lingkungan tidak tersedia,
Anda mungkin mengalami kegagalan instance tugas Airflow dan melihat
error Transport endpoint is not connected di log Airflow.
Solusi:
- Nonaktifkan penyimpanan log ke bucket lingkungan. Opsi ini sudah dinonaktifkan secara default jika lingkungan dibuat menggunakan Managed Airflow 2.8.0 atau versi yang lebih baru.
- Upgrade ke Managed Airflow 2.8.0 atau versi yang lebih baru.
- Kurangi
[celery]worker_concurrencydan tingkatkan jumlah worker Airflow. - Kurangi jumlah log yang dihasilkan dalam kode DAG.
- Ikuti rekomendasi dan praktik terbaik untuk menerapkan DAG dan mengaktifkan percobaan ulang tugas.
UI Airflow terkadang mungkin 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 hal ini, mulai ulang server web Airflow lingkungan Anda.
Cluster lingkungan memiliki workload dalam status Tidak Dapat Dijadwalkan
Masalah umum ini hanya berlaku untuk Managed Airflow (Gen 2).
Di Managed Airflow (Gen 2), setelah lingkungan dibuat, beberapa workload di cluster lingkungan tetap dalam status Tidak Dapat Diberi Jadwal.
Saat lingkungan ditingkatkan skalanya, pod worker baru akan dibuat dan Kubernetes akan mencoba menjalankannya. Jika tidak ada resource gratis yang tersedia untuk menjalankannya, pod worker akan ditandai sebagai Tidak dapat diberi schedule.
Dalam situasi ini, Autoscaler Cluster menambahkan lebih banyak node, yang memerlukan waktu beberapa menit. Hingga selesai, pod akan tetap dalam status Tidak dapat dijadwalkan dan tidak menjalankan tugas apa pun.
Workload DaemonSet yang tidak dapat diberi jadwal bernama composer-gcsfuse dan
composer-fluentd yang tidak dapat dimulai pada node tempat komponen Airflow
tidak ada tidak akan memengaruhi lingkungan Anda.
Jika masalah ini berlanjut dalam waktu lama (lebih dari 1 jam), Anda dapat memeriksa log Autoscaler Cluster. Anda dapat menemukannya di Logs Viewer dengan filter berikut:
resource.type="k8s_cluster"
logName="projects/<project-name>/logs/container.googleapis.com%2Fcluster-autoscaler-visibility"
resource.labels.cluster_name="<cluster-name>"
Log ini berisi informasi tentang keputusan yang dibuat oleh Autoscaler Cluster: luaskan noDecisionStatus apa pun untuk melihat alasan cluster tidak dapat ditingkatkan atau diturunkan skalanya.
Error 504 saat mengakses UI Airflow
Anda bisa mendapatkan 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 Managed Airflow (Gen 3)) Masalah konektivitas. Jika UI Airflow tidak tersedia secara permanen, dan error waktu tunggu atau 504 dihasilkan, pastikan lingkungan Anda dapat mengakses
*.composer.googleusercontent.com.(Khusus Managed Airflow (Gen 2)) Masalah konektivitas. Jika UI Airflow tidak tersedia secara permanen, dan error waktu tunggu atau 504 dihasilkan, pastikan lingkungan Anda dapat mengakses
*.composer.cloud.google.com. Jika Anda menggunakan Akses Google Pribadi dan mengirim traffic melalui IP Virtualprivate.googleapis.com, atau Kontrol Layanan VPC dan mengirim traffic melalui IP Virtualrestricted.googleapis.com, pastikan Cloud DNS Anda juga dikonfigurasi untuk nama domain*.composer.cloud.google.com.Server web Airflow tidak responsif. Jika error 504 tetap ada, tetapi Anda masih dapat mengakses UI Airflow pada waktu tertentu, server web Airflow mungkin tidak responsif karena kewalahan. Coba tingkatkan 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 untuk 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.tmpatauGCS 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 terjadi penghapusan yang tidak disengaja (misalnya, karena kebijakan retensi telah dikonfigurasi), Anda dapat memulihkannya:
Tetapkan variabel lingkungan baru di lingkungan Anda. Anda dapat menggunakan nama dan nilai variabel apa pun.
Mengganti opsi konfigurasi Airflow. Anda dapat menggunakan opsi konfigurasi Airflow yang tidak ada.
Error 500 saat mengakses UI Airflow setelah mengganti [webserver]analytics_tool
Di lingkungan dengan Airflow 2, jika Anda mengganti opsi konfigurasi Airflow [webserver]analytics_tool untuk mengarahkan data penggunaan UI Airflow anonim ke layanan analisis (seperti Google Analytics, Segment, MetaRouter, atau Matomo), mengakses UI Airflow setelah update lingkungan berhasil dapat menampilkan respons (500) Internal Server Error, dengan salah satu error berikut di log server web Airflow:
airflow.exceptions.AirflowConfigException: section/key [webserver/analytics_id] not found in config
airflow.exceptions.AirflowConfigException: section/key [webserver/analytics_url] not found in config
Jika [webserver]analytics_tool ditetapkan di Airflow 2, server web Airflow
memerlukan opsi analisis pendamping di bagian [webserver] untuk juga
ditentukan saat merender UI Airflow.
Di Airflow 3, opsi konfigurasi [webserver]analytics_tool, [webserver]analytics_id, dan
[webserver]analytics_url dihapus.
Solusi:
- Hapus penggantian untuk opsi konfigurasi Airflow
[webserver]analytics_tool, atau - Tentukan semua opsi konfigurasi Airflow yang diperlukan secara bersamaan:
[webserver]analytics_tool[webserver]analytics_id[webserver]analytics_url(diperlukan di Airflow 2.9 dan yang lebih baru, meskipun alat analisis Anda tidak menggunakan URL kustom)
Mengarahkan kursor ke instance tugas di tampilan Hierarki akan menampilkan TypeError yang tidak tertangkap
Di Airflow 2, tampilan Hierarki di UI Airflow terkadang mungkin tidak berfungsi dengan baik saat zona waktu non-default digunakan. Sebagai solusi untuk masalah ini, konfigurasikan zona waktu secara eksplisit di UI Airflow.
UI Airflow di Airflow 2.2.3 atau versi sebelumnya rentan terhadap CVE-2021-45229
Seperti yang ditunjukkan dalam CVE-2021-45229,
layar "Trigger DAG with config" rentan terhadap serangan XSS
melalui argumen kueri origin.
Rekomendasi: Upgrade ke versi Managed Airflow terbaru yang mendukung Airflow 2.2.5.
Worker memerlukan lebih banyak memori daripada versi Airflow sebelumnya
Gejala:
Di lingkungan Managed Airflow (Gen 2) Anda, semua workload cluster lingkungan dari worker Airflow berada dalam status
CrashLoopBackOffdan tidak menjalankan tugas. Anda juga dapat melihat peringatanOOMKillingyang dihasilkan jika Anda terpengaruh oleh masalah ini.Masalah ini dapat mencegah upgrade lingkungan.
Penyebab:
- Jika Anda menggunakan nilai kustom untuk opsi konfigurasi Airflow
[celery]worker_concurrencydan setelan memori kustom untuk worker Airflow, Anda mungkin mengalami masalah ini saat konsumsi resource mendekati batas. - Persyaratan memori worker Airflow di Airflow 2.6.3 dengan Python 3.11 adalah 10% lebih tinggi dibandingkan dengan worker di versi sebelumnya.
- Persyaratan memori worker Airflow di Airflow 2.3 dan versi yang lebih baru 30% lebih tinggi dibandingkan dengan worker di Airflow 2.2 atau Airflow 2.1.
Solusi:
- Hapus penggantian untuk
worker_concurrency, sehingga Managed Airflow menghitung nilai ini secara otomatis. - Jika Anda menggunakan nilai kustom untuk
worker_concurrency, tetapkan ke nilai yang lebih rendah. Anda dapat menggunakan nilai yang dihitung secara otomatis sebagai titik awal. - Sebagai alternatif, Anda dapat meningkatkan jumlah memori yang tersedia untuk worker Airflow.
- Jika Anda tidak dapat mengupgrade lingkungan ke versi yang lebih baru karena masalah ini, terapkan salah satu solusi yang diusulkan sebelum mengupgrade.
Pemicuan DAG melalui jaringan pribadi menggunakan Cloud Run Functions
Memicu DAG dengan fungsi Cloud Run melalui jaringan pribadi dengan penggunaan Konektor VPC tidak didukung oleh Managed Airflow.
Rekomendasi: Gunakan Cloud Run Functions untuk memublikasikan pesan di Pub/Sub. Peristiwa tersebut dapat menggerakkan Sensor Pub/Sub untuk memicu DAG Airflow atau menerapkan pendekatan berdasarkan operator yang dapat ditunda.
Folder kosong di Scheduler dan Workers
Managed Airflow tidak secara aktif menghapus folder kosong dari worker dan scheduler Airflow. Entity 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.
Entity tersebut pada akhirnya akan dihapus dari penyimpanan lokal scheduler dan worker Airflow saat komponen ini dimulai ulang (misalnya, sebagai akibat dari operasi perkecil skala atau pemeliharaan di cluster lingkungan Anda).
Dukungan untuk Kerberos
Managed Airflow tidak mendukung konfigurasi Kerberos Airflow.
Dukungan untuk class komputasi di Managed Airflow (Gen 2) dan Managed Airflow (Gen 3)
Managed Airflow (Gen 3) dan Managed Airflow (Gen 2) hanya mendukung class komputasi tujuan umum. Artinya, menjalankan Pod yang meminta class komputasi lain (seperti Balanced atau Scale-Out) tidak dapat dilakukan.
Class tujuan umum memungkinkan Pod yang berjalan meminta memori hingga 110 GB dan CPU hingga 30 (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 Managed Airflow (Gen 3) dan Managed Airflow (Gen 2).
Rekomendasi: Gunakan GKEStartPodOperator untuk menjalankan Pod Kubernetes di cluster berbeda yang mendukung class komputasi yang dipilih. Jika Anda menjalankan Pod kustom yang memerlukan class komputasi yang berbeda, Pod tersebut juga harus berjalan di cluster Airflow non-Managed Airflow.
Dukungan untuk Operator Google Campaign Manager 360
Operator Google Campaign Manager di Managed Airflow versi sebelum 2.1.13 didasarkan pada Campaign Manager 360 v3.5 API yang tidak digunakan lagi dan tanggal penghentiannya adalah 1 Mei 2023.
Jika Anda menggunakan operator Google Campaign Manager, upgrade lingkungan Anda ke Managed Airflow versi 2.1.13 atau yang lebih baru.
Dukungan untuk Operator Google Display & Video 360
Operator Google Display & Video 360 di Managed Airflow versi sebelum 2.1.13 didasarkan pada Display & Video 360 v1.1 API yang tidak digunakan lagi dan tanggal penghentiannya adalah 27 April 2023.
Jika Anda menggunakan operator Google Display & Video 360, upgrade lingkungan Anda ke Managed Airflow versi 2.1.13 atau yang lebih baru. Selain itu, Anda mungkin perlu mengubah DAG karena beberapa operator Google Display dan Video 360 tidak digunakan lagi dan diganti dengan yang baru.
GoogleDisplayVideo360CreateReportOperatortidak digunakan lagi. Sebagai gantinya, gunakanGoogleDisplayVideo360CreateQueryOperator. Operator ini menampilkanquery_id, bukanreport_id.GoogleDisplayVideo360RunReportOperatortidak digunakan lagi. Sebagai gantinya, gunakanGoogleDisplayVideo360RunQueryOperator. Operator ini menampilkanquery_iddanreport_id, bukan hanyareport_id, dan memerlukanquery_id, bukanreport_idsebagai parameter.- Untuk memeriksa apakah laporan sudah siap, gunakan sensor
GoogleDisplayVideo360RunQuerySensorbaru yang menggunakan parameterquery_iddanreport_id. SensorGoogleDisplayVideo360ReportSensoryang tidak digunakan lagi hanya memerlukanreport_id. GoogleDisplayVideo360DownloadReportV2Operatorkini memerlukan parameterquery_iddanreport_id.- Di
GoogleDisplayVideo360DeleteReportOperator, tidak ada perubahan yang dapat memengaruhi DAG Anda.
Batasan nama Rentang Sekunder
CVE-2023-29247 (Halaman detail instance tugas di UI rentan terhadap XSS tersimpan)
UI Airflow di Airflow versi 2.0.x hingga 2.5.x rentan terhadap CVE-2023-29247.
Jika Anda menggunakan Managed Airflow versi sebelum 2.4.2 dan mencurigai bahwa lingkungan Anda mungkin rentan terhadap eksploitasi, baca deskripsi dan kemungkinan solusi berikut.
Di Managed Airflow, akses ke UI Airflow dilindungi dengan IAM dan kontrol akses UI Airflow.
Artinya, untuk mengeksploitasi kerentanan UI Airflow, penyerang harus terlebih dahulu mendapatkan akses ke project Anda beserta izin dan peran IAM yang diperlukan.
Solusi:
Verifikasi izin dan peran IAM dalam project Anda, termasuk peran Managed Service untuk Apache Airflow yang ditetapkan untuk setiap pengguna. Pastikan hanya pengguna yang disetujui yang dapat mengakses UI Airflow.
Verifikasi peran yang ditetapkan kepada pengguna melalui mekanisme kontrol akses UI Airflow (ini adalah mekanisme terpisah yang memberikan akses lebih terperinci ke UI Airflow). Pastikan hanya pengguna yang disetujui yang dapat mengakses UI Airflow dan semua pengguna baru terdaftar dengan peran yang sesuai.
Pertimbangkan penguatan tambahan dengan Kontrol Layanan VPC.
DAG pemantauan airflow lingkungan Composer Airflow Terkelola (Gen 2) tidak dibuat ulang setelah dihapus
DAG pemantauan airflow tidak dibuat ulang secara otomatis jika dihapus oleh pengguna atau dipindahkan dari bucket di lingkungan dengan composer-2.1.4-airflow-2.4.3.
Solusi:
- Masalah ini telah diperbaiki di versi yang lebih baru seperti composer-2.4.2-airflow-2.5.3. Pendekatan yang disarankan adalah mengupgrade lingkungan Anda ke versi yang lebih baru.
- Solusi alternatif atau sementara untuk upgrade lingkungan adalah dengan menyalin DAG airflow_monitoring dari lingkungan lain dengan versi yang sama.
Penyimpanan Cloud SQL tidak dapat dikurangi
Airflow terkelola menggunakan Cloud SQL untuk menjalankan database Airflow. Seiring waktu, penyimpanan disk untuk instance Cloud SQL mungkin bertambah karena disk diskalakan agar sesuai dengan data yang disimpan oleh operasi Cloud SQL saat database Airflow bertambah.
Ukuran disk Cloud SQL tidak dapat diperkecil.
Sebagai solusinya, jika ingin menggunakan ukuran disk Cloud SQL terkecil, Anda dapat membuat ulang lingkungan Managed Airflow 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. Namun, PostgreSQL menandainya sebagai "tuple mati" untuk mempertahankan konsistensi data dan menghindari pemblokiran transaksi serentak.
MySQL dan Postgres menerapkan mekanisme untuk mengklaim kembali ruang setelah data dihapus.
Meskipun database dapat dipaksa untuk mengklaim kembali kapasitas disk yang tidak digunakan, ini adalah operasi yang membutuhkan banyak resource dan juga mengunci database sehingga Managed Airflow tidak tersedia. Oleh karena itu, sebaiknya andalkan mekanisme bawaan untuk mengklaim kembali ruang yang tidak digunakan.
Akses diblokir: Error Otorisasi
Jika masalah ini memengaruhi pengguna, dialog Akses diblokir: Error Otorisasi akan 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 Apache Airflow di aplikasi Managed Airflow tidak diizinkan secara eksplisit, pengguna tidak dapat mengakses UI Airflow kecuali jika mereka mengizinkan aplikasi secara eksplisit.
Untuk mengizinkan akses, lakukan langkah-langkah yang disediakan di Mengizinkan akses ke UI Airflow di Google Workspace.
Loop login saat mengakses UI Airflow
Masalah ini mungkin disebabkan oleh hal berikut:
Jika binding Akses Kontekstual Chrome Enterprise Premium digunakan dengan tingkat akses yang mengandalkan atribut perangkat, dan Apache Airflow di aplikasi Managed Airflow tidak dikecualikan, maka UI Airflow tidak dapat diakses karena loop login. Untuk mengizinkan akses, lakukan langkah-langkah yang disediakan di Mengizinkan akses ke UI Airflow dalam binding Akses Kontekstual.
Jika aturan ingress dikonfigurasi dalam perimeter Kontrol Layanan VPC yang melindungi project, dan aturan ingress yang mengizinkan akses ke layanan Managed Airflow menggunakan jenis identitas
ANY_SERVICE_ACCOUNTatauANY_USER_ACCOUNT, pengguna tidak dapat mengakses UI Airflow, sehingga berakhir dalam loop login. Untuk mengetahui informasi selengkapnya tentang cara mengatasi skenario ini, lihat Mengizinkan akses ke UI Airflow dalam aturan ingress Kontrol Layanan VPC.
Task instance yang berhasil di masa lalu ditandai sebagai FAILED
Dalam beberapa situasi dan skenario yang jarang terjadi, instance tugas Airflow yang berhasil
di masa lalu dapat ditandai sebagai FAILED.
Jika terjadi, biasanya hal ini dipicu oleh operasi update atau upgrade lingkungan, atau oleh pemeliharaan GKE.
Catatan: masalah itu sendiri tidak menunjukkan masalah apa pun di lingkungan dan tidak menyebabkan kegagalan aktual dalam eksekusi tugas.
Masalah ini telah diperbaiki di Managed Airflow versi 2.6.5 atau yang lebih baru.
Komponen Airflow mengalami masalah saat berkomunikasi dengan bagian lain dari konfigurasi Managed Airflow
Masalah ini hanya berlaku untuk Managed Airflow (Gen 2) versi 2.10.2 dan yang lebih lama.
Dalam kasus yang sangat jarang terjadi, lambatnya komunikasi ke server Metadata Compute Engine dapat menyebabkan komponen Airflow tidak berfungsi secara optimal. Misalnya, penjadwal Airflow mungkin dimulai ulang, tugas Airflow mungkin perlu dicoba ulang, atau waktu mulai tugas mungkin lebih lama.
Gejala:
Error berikut muncul di log komponen Airflow (seperti scheduler, worker, atau server web Airflow):
Authentication failed using Compute Engine authentication due to unavailable metadata server
Compute Engine Metadata server unavailable on attempt 1 of 3. Reason: timed out
...
Compute Engine Metadata server unavailable on attempt 2 of 3. Reason: timed out
...
Compute Engine Metadata server unavailable on attempt 3 of 3. Reason: timed out
Solusi:
- Upgrade lingkungan Anda ke versi Managed Airflow yang lebih baru. Masalah ini telah diperbaiki mulai dari Managed Airflow versi 2.11.0.
Folder /data tidak tersedia di server web Airflow
Di Managed Airflow (Gen 2) dan Managed Airflow (Gen 3), server web Airflow dimaksudkan sebagai komponen yang sebagian besar bersifat hanya baca dan Managed Airflow tidak menyinkronkan folder data/
ke komponen ini.
Terkadang, Anda mungkin ingin berbagi file umum di antara semua komponen Airflow, termasuk server web Airflow.
Solusi:
Gabungkan file yang akan dibagikan ke server web ke dalam modul PYPI dan instal sebagai paket PYPI reguler. Setelah modul PYPI diinstal di lingkungan, file akan ditambahkan ke image komponen Airflow dan tersedia untuk komponen tersebut.
Tambahkan file ke folder
plugins/. Folder ini disinkronkan ke server web Airflow.
Diagram waktu penguraian DAG dan ukuran DAG bag yang tidak berkelanjutan dalam pemantauan
Diagram waktu penguraian DAG dan ukuran bag DAG yang tidak berkelanjutan di dasbor pemantauan menunjukkan masalah dengan waktu penguraian DAG yang lama (lebih dari 5 menit).
Solusi: Sebaiknya pertahankan total waktu penguraian DAG di bawah 5 menit. Untuk mengurangi waktu penguraian DAG, ikuti panduan penulisan DAG.
Log komponen Airflow terkelola tidak ada di Cloud Logging
Ada masalah pada komponen lingkungan yang bertanggung jawab untuk mengupload log komponen Airflow ke Cloud Logging. Bug ini terkadang menyebabkan situasi saat log level Airflow Terkelola mungkin tidak ada untuk komponen Airflow. Log yang sama masih tersedia di level komponen Kubernetes.
Kemunculan masalah: sangat jarang, sporadis
Penyebab:
Perilaku yang salah dari komponen Managed Airflow yang bertanggung jawab untuk mengupload log ke Cloud Logging.
Solusi:
Upgrade lingkungan Anda ke Managed Airflow versi 2.10.0 atau yang lebih baru.
Di versi Managed Airflow yang lebih lama, solusi sementara saat Anda mengalami situasi ini adalah memulai operasi Managed Airflow yang memulai ulang komponen yang lognya tidak ada.
Mengalihkan cluster lingkungan ke GKE Enterprise Edition tidak didukung
Catatan ini berlaku untuk Managed Airflow 1 dan Managed Airflow 2.
Cluster GKE lingkungan Managed Airflow dibuat dalam GKE Standard Edition.
Mulai Desember 2024, layanan Managed Airflow tidak mendukung pembuatan lingkungan Managed Airflow dengan cluster di Enterprise Edition.
Managed Airflow tidak diuji dengan GKE Enterprise Edition dan memiliki model penagihan yang berbeda.
Komunikasi lebih lanjut terkait GKE Standard Edition versus edisi Enterprise akan dilakukan pada kuartal kedua tahun 2025.
Komponen Airflow mengalami masalah saat berkomunikasi dengan bagian lain dari konfigurasi Managed Airflow
Dalam beberapa kasus, karena resolusi DNS yang gagal, komponen Airflow mungkin mengalami masalah saat berkomunikasi dengan komponen Managed Airflow lain atau endpoint layanan di luar lingkungan Managed Airflow.
Gejala:
Error berikut mungkin muncul di log komponen Airflow (seperti scheduler, worker, atau server web Airflow):
google.api_core.exceptions.ServiceUnavailable: 503 DNS resolution failed ...
... Timeout while contacting DNS servers
atau
Could not access *.googleapis.com: HTTPSConnectionPool(host='www.googleapis.com', port=443): Max retries exceeded with url: / (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7c5ef5adba90>: Failed to resolve 'www.googleapis.com' ([Errno -3] Temporary failure in name resolution)"))
atau
redis.exceptions.ConnectionError: Error -3 connecting to
airflow-redis-service.composer-system.svc.cluster.local:6379.
Temporary failure in name resolution.
Kemungkinan solusi:
Upgrade ke Managed Airflow 2.9.11 atau
Tetapkan variabel lingkungan berikut:
GCE_METADATA_HOST=169.254.169.254.
Lingkungan berada dalam status ERROR setelah akun penagihan project dihapus atau dinonaktifkan, atau Cloud Composer API dinonaktifkan
Lingkungan Managed Airflow yang terpengaruh oleh masalah ini tidak dapat dipulihkan:
- Setelah akun penagihan project dihapus atau dinonaktifkan, meskipun akun lain ditautkan nanti.
- Setelah Cloud Composer API dinonaktifkan di project, meskipun diaktifkan nanti.
Anda dapat melakukan hal berikut untuk mengatasi masalah ini:
Anda masih dapat mengakses data yang disimpan di bucket lingkungan, tetapi lingkungan itu sendiri tidak dapat digunakan lagi. Anda dapat membuat lingkungan Managed Airflow 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.
Peringatan tentang Anggaran Gangguan Pod untuk cluster lingkungan
Anda dapat melihat peringatan berikut di UI GKE untuk cluster lingkungan Managed Airflow:
GKE can't perform maintenance because the Pod Disruption Budget allows
for 0 Pod evictions. Update the Pod Disruption Budget.
A StatefulSet is configured with a Pod Disruption Budget but without readiness
probes, so the Pod Disruption Budget isn't as effective in gauging application
readiness. Add one or more readiness probes.
Peringatan ini tidak dapat dihilangkan. Kami berupaya menghentikan pembuatan peringatan ini.
Kemungkinan solusi:
- Abaikan peringatan ini hingga masalahnya diperbaiki.
Nilai kolom dalam koneksi Airflow tidak dapat dihapus
Penyebab:
Antarmuka pengguna Apache Airflow memiliki batasan, yaitu tidak dapat memperbarui kolom koneksi ke nilai kosong. Saat Anda mencoba melakukannya, sistem akan kembali ke setelan yang disimpan sebelumnya.
Kemungkinan solusi:
Meskipun Apache Airflow versi 2.10.4 menyertakan perbaikan permanen, ada solusi sementara untuk pengguna versi sebelumnya. Hal ini melibatkan penghapusan koneksi, lalu membuatnya kembali, khususnya dengan mengosongkan kolom yang wajib diisi. Antarmuka command line adalah pendekatan yang direkomendasikan untuk menghapus koneksi:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
connections delete -- \
CONNECTION_ID
Setelah menghapus koneksi, buat ulang menggunakan UI Airflow, dan pastikan kolom yang ingin Anda kosongkan memang dibiarkan kosong. Anda juga dapat membuat koneksi dengan menjalankan perintah Airflow CLI connections add dengan Google Cloud CLI.
Log untuk tugas Airflow tidak dikumpulkan jika [core]execute_tasks_new_python_interpreter ditetapkan ke True
Managed Airflow 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.
Titik data yang hilang dalam metrik, ValueError: Cannot determine path without bucket name
Lingkungan dengan Managed Airflow (Gen 2) versi 2.16.0 dan 2.16.1 mungkin mengalami
masalah umum terkait pelaporan metrik. Anda dapat mengamati beberapa titik data yang dilewati dalam metrik pelaporan dan melihat pesan error tentang mulai ulang pod airflow-monitoring di log lingkungan.
Contoh pesan error:
ValueError: Cannot determine path without bucket name error.
Masalah ini tidak memengaruhi fungsi lingkungan. Lingkungan masih beroperasi dan informasi pemantauan serta kondisi lingkungan dilaporkan dengan benar. Anda dapat mengabaikan pesan error.
Penurunan performa lingkungan di beberapa versi paket google-api-core
Versi dari 2.28.0 hingga 2.30.2
Versi paket pra-instal google-api-core dari 2.28.0 hingga 2.30.2 dapat
menyebabkan penurunan performa lingkungan, yang dapat mengakibatkan waktu yang lebih lama untuk
mengeksekusi tugas dan waktu yang lebih lama untuk memindahkan tugas dari status dalam antrean ke status
eksekusi.
Build Managed Airflow (Gen 3) yang terpengaruh:
- composer-3-airflow-3.1.7-build.0 hingga composer-3-airflow-3.1.7-build.5
- composer-3-airflow-3.1.0-build.5 ke composer-3-airflow-3.1.0-build.10
- composer-3-airflow-2.11.1-build.0
- composer-3-airflow-2.10.5-build.22 ke composer-3-airflow-2.10.5-build.33
- composer-3-airflow-2.9.3-build.42 ke composer-3-airflow-2.9.3-build.53
Build Managed Airflow (Gen 2) yang terpengaruh:
- composer-2.16.10-airflow-2.11.1
- composer-2.16.0-airflow-2.10.5 ke composer-2.16.10-airflow-2.10.5
- composer-2.16.0-airflow-2.9.3 ke composer-2.16.10-airflow-2.9.3
Upgrade lingkungan Anda ke salah satu build berikut, yang menyertakan
google-api-core versi 2.27.0 yang telah diinstal sebelumnya dan tidak terpengaruh oleh masalah ini:
- composer-3-airflow-2.11.1-build.1
- composer-3-airflow-2.10.5-build.34
- composer-3-airflow-2.9.3-build.54
- composer-2.16.11-airflow-2.11.1
- composer-2.16.11-airflow-2.10.5
- composer-2.16.11-airflow-2.9.3
Atau, upgrade ke image yang menyertakan google-api-core 2.43.1 atau
yang lebih baru, atau instal versi yang kompatibel secara manual.
Di Python 3.11, google-api-core versi 2.30.3 hingga 2.43.0 menyebabkan
masalah performa terpisah mulai 24 Oktober 2026. Jika lingkungan Anda
menjalankan Python 3.11, terapkan salah satu solusi yang tercantum dalam
Versi dari 2.30.3 hingga 2.43.0 di Python 3.11.
Versi dari 2.30.3 hingga 2.43.0 di Python 3.11
Mulai 24 Oktober 2026, versi paket google-api-core 2.30.3 hingga 2.43.0
menjalankan pemeriksaan penghentian penggunaan Python 3.11 yang memindai metadata paket yang diinstal
setiap kali library klien Google Cloud diimpor dalam subproses Python
baru.
Di lingkungan Managed Airflow yang menjalankan Python 3.11, perilaku ini dapat menurunkan performa. Masalah ini lebih parah di lingkungan yang memiliki banyak DAG, tugas yang sering berjalan singkat, atau integrasi silsilah data yang diaktifkan.
Gejalanya meliputi:
- Peningkatan waktu penguraian DAG dan penggunaan CPU yang lebih tinggi pada pemroses DAG Airflow.
- Waktu eksekusi tugas yang lebih lama dan penggunaan CPU yang lebih tinggi pada worker Airflow.
- Entri log
FutureWarningyang sering darigoogle/api_core/_python_version_support.pyyang menyatakan bahwa dukungan Python 3.11 berakhir pada 24-10-2027.
Masalah ini memengaruhi lingkungan Python 3.11 apa pun yang menggunakan google-api-core versi
2.30.3 hingga 2.43.0, baik yang telah diinstal sebelumnya maupun diinstal secara manual, termasuk
build berikut.
Masalah ini memengaruhi build Managed Airflow (Gen 3) berikut:
- composer-3-airflow-3.3.1-build.0 hingga composer-3-airflow-3.3.1-build.5
- composer-3-airflow-3.2.2-build.0 hingga composer-3-airflow-3.2.2-build.9
- composer-3-airflow-3.1.8-build.0 hingga composer-3-airflow-3.1.8-build.4
- composer-3-airflow-3.1.7-build.7 ke composer-3-airflow-3.1.7-build.13
- composer-3-airflow-2.11.1-build.3 ke composer-3-airflow-2.11.1-build.22
- composer-3-airflow-2.10.5-build.36 ke composer-3-airflow-2.10.5-build.52
Build Managed Airflow (Gen 2) yang terpengaruh:
- composer-2.17.0-airflow-2.11.1 ke composer-2.17.16-airflow-2.11.1
- composer-2.17.0-airflow-2.10.5 ke composer-2.17.13-airflow-2.10.5
Solusi:
Pilih salah satu opsi berikut berdasarkan versi image lingkungan Anda:
Opsi 1. Build Managed Airflow (Gen 3) yang kompatibel dengan Airflow 3 saja: Instal paket PyPI
google-api-coredengan batasan versi>=2.43.1.Build Managed Airflow (Gen 3) yang kompatibel:
- composer-3-airflow-3.3.1-build.0 hingga composer-3-airflow-3.3.1-build.5
- composer-3-airflow-3.2.2-build.1 hingga composer-3-airflow-3.2.2-build.9
- composer-3-airflow-3.1.8-build.3 ke composer-3-airflow-3.1.8-build.4
Jangan gunakan opsi ini pada build Airflow 2 atau build Airflow 3 yang lebih lama, termasuk
composer-3-airflow-3.2.2-build.0dancomposer-3-airflow-3.1.8-build.0hinggabuild.2. Dalam build tersebut,google-api-core2.43.1 menyebabkan konflik dependensi karena memerlukanopentelemetry-api>=1.44.0. Untuk build tersebut, gunakan Opsi 2.Opsi 2. Semua build Managed Airflow (Gen 3) dan Managed Airflow (Gen 2) yang terpengaruh: Terapkan patch runtime
sitecustomize.py.Download sitecustomize.py dari GitHub.
Upload
sitecustomize.pyke folderdags/patchesdi bucket lingkungan Anda.Tetapkan variabel lingkungan
PYTHONPATHke/home/airflow/gcs/dags/patches.Jika
PYTHONPATHsudah ditetapkan, tambahkan/home/airflow/gcs/dags/patches:ke nilai yang ada. Contoh:/home/airflow/gcs/dags/patches:PREVIOUS_PYTHONPATH_VALUE
Pembersihan setelah upgrade: Dalam rilis Managed Airflow mendatang, paket
google-api-coreversi 2.43.1 atau yang lebih baru akan diinstal otomatis. Setelah mengupgrade ke image dengangoogle-api-core2.43.1 atau yang lebih baru, Anda dapat menghapus penggantianPYTHONPATHdan menghapusdags/patches/sitecustomize.py.