Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Halaman ini mencantumkan masalah umum Cloud Composer. Beberapa perbaikan untuk masalah ini masalah sedang berlangsung, dan akan tersedia dalam versi mendatang.
Beberapa masalah memengaruhi versi yang lebih lama, dan dapat diperbaiki dengan mengupgrade lingkungan Anda.
Rentang alamat IP non-RFC 1918 didukung sebagian untuk Pod dan Service
Cloud Composer mengandalkan GKE untuk memberikan dukungan untuk alamat non-RFC 1918 untuk Pod dan Service. Saat ini, hanya daftar rentang Non-RFC 1918 didukung di Cloud Composer:
- 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
UI Airflow tidak menampilkan log tugas saat Serialisasi DAG aktif di Composer 1.10.2 dan Composer 1.10.3
Mengaktifkan serialisasi DAG di lingkungan menggunakan Composer versi 1.10.2 dan 1.10.3 mencegah log ditampilkan di Server web Airflow. Upgrade ke versi 1.10.4 (atau yang lebih baru) untuk memperbaiki masalah ini.
Kegagalan Tugas Berselang-seling selama Penjadwalan di Cloud Composer
Masalah ini terlihat di Airflow Scheduler untuk instance tugas selama pelaksanaan tugas. Namun, log tersebut tidak menjelaskan penyebab kegagalan tugas. Airflow Worker serta Airflow Scheduler tampak relatif responsif.
Pesan error di Airflow Scheduler mungkin terlihat seperti error berikut:
Executor reports task instance <TaskInstance: xx.xxxx scheduled__2022-04-21T06:00:00+00:00 [queued]> finished (failed) although the task says its queued. (Info: None) Was the task killed externally?
Atau mungkin ada error pada Airflow Worker yang mirip dengan error berikut:
Log file is not found: gs://$BUCKET_NAME/logs/$DAG_NAME/$TASK_NAME/2023-01-25T05:01:17.044759+00:00/1.log.
The task might not have been executed or worker executing it might have finished abnormally (e.g. was evicted).
Untuk memastikan keandalan dalam menangani error yang berasal dari masalah yang sudah lama ada di Airflow, sebaiknya terapkan strategi percobaan ulang yang sesuai secara proaktif di tingkat tugas dan DAG. Dengan menerapkan langkah-langkah ini, sistem dapat secara efektif mengurangi dampak error ini, sehingga meningkatkan keandalan dan ketahanan alur kerja secara keseluruhan.
GKE Workload Identity tidak didukung
Masalah ini hanya berlaku untuk lingkungan Cloud Composer 1. Cloud Composer 2 menggunakan Workload Identity.
Anda tidak dapat mengaktifkan Workload Identity untuk
cluster lingkungan Cloud Composer. Akibatnya, Anda mungkin melihat
WORKLOAD_IDENTITY_DISABLED
ditemukan di Security Command Center.
Label lingkungan yang ditambahkan selama update tidak diterapkan sepenuhnya
Label lingkungan yang diperbarui tidak diterapkan ke VM Compute Engine. Sebagai solusinya, label tersebut dapat diterapkan secara manual.
Upgrade GKE dalam konteks masalah CVE-2020-14386
Kami sedang berupaya mengatasi CVE-2020-14386 kerentanan untuk semua lingkungan Cloud Composer. Sebagai bagian dari memperbaiki, semua cluster GKE Cloud Composer yang ada akan diupdate ke memiliki versi yang lebih baru.
Pelanggan yang memutuskan untuk segera mengatasi kerentanan dapat melakukan upgrade Cluster GKE Composer dengan mengikuti petunjuk ini dengan pertimbangan berikut:
Langkah 1. Jika Anda menjalankan Cloud Composer versi yang lebih lama dari 1.7.2, upgrade ke Cloud Composer versi yang lebih baru. Jika Anda sudah memiliki versi 1.7.2 atau yang lebih baru, lanjutkan ke poin berikutnya.
Langkah 2. Upgrade cluster GKE (master dan node) ke versi patch 1.15 terbaru yang berisi perbaikan untuk kerentanan ini.
Log tugas Airflow tidak tersedia di server web Airflow setelah mengupgrade dari Airflow 1.9.0 ke Airflow 1.10.x
Airflow 1.10.x memperkenalkan perubahan yang tidak kompatibel dengan versi sebelumnya pada penamaan untuk file log. Informasi zona sekarang ditambahkan ke nama log untuk Tugas Airflow.
Airflow 1.9.0 menyimpan dan mengharapkan nama log dalam format berikut:
BUCKET/logs/DAG/2020-03-30T10:29:06/1.log
Airflow 1.10.x menyimpan dan mengharapkan nama log dalam format berikut:
BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log
Hasilnya, jika Anda melakukan upgrade dari Airflow 1.9.0 ke Airflow 1.10.x
dan ingin membaca log untuk tugas
yang dieksekusi dengan Airflow 1.9.0,
server Airflow Web akan menampilkan pesan error berikut:
Unable to read remote log from BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log
Solusi: Ganti nama log yang dibuat oleh Airflow 1.9.0 di
bucket Cloud Storage menggunakan format:
BUCKET/logs/DAG/2020-03-30T10:29:06+00:00/1.log
Tidak dapat membuat lingkungan Cloud Composer karena batasan kebijakan organisasi/compute.disableSerialPortLogging diterapkan
Pembuatan lingkungan Cloud Composer akan gagal jika
constraints/compute.disableSerialPortLogging
diterapkan pada target
proyek.
Diagnosis
Untuk mengetahui apakah Anda terpengaruh oleh masalah ini, ikuti prosedur ini:
Buka menu GKE di Konsol Google Cloud Anda. 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:
Constraint constraints/compute.disableSerialPortLogging violated for
project <target project number>.
Solusi:
Nonaktifkan kebijakan organisasi di project tempat lingkungan Cloud Composer akan dibuat.
Kebijakan organisasi selalu dapat dinonaktifkan di level project meskipun induk resource (organisasi atau folder) telah mengaktifkannya. Lihat Menyesuaikan kebijakan untuk halaman batasan boolean guna mengetahui detail selengkapnya.
Gunakan filter pengecualian
Menggunakan filter pengecualian untuk log port serial. memiliki tujuan yang sama dengan menonaktifkan kebijakan organisasi, karena ada log konsol serial di Logging. Untuk detail selengkapnya, lihat Filter pengecualian kami.
Penggunaan Deployment Manager untuk mengelola resource Google Cloud yang dilindungi oleh Kontrol Layanan VPC
Composer menggunakan Deployment Manager untuk membuat komponen lingkungan Cloud Composer.
Pada Desember 2020, Anda mungkin telah menerima informasi yang mungkin perlu dilakukan konfigurasi Kontrol Layanan VPC tambahan agar dapat menggunakan Deployment Manager mengelola resource yang dilindungi oleh Kontrol Layanan VPC.
Kami ingin mengklarifikasi bahwa Anda tidak perlu melakukan tindakan apa pun jika menggunakan Composer dan tidak menggunakan Deployment Manager secara langsung untuk mengelola resource Google Cloud yang disebutkan dalam pengumuman.
Tidak dapat menghapus lingkungan setelah cluster GKE-nya dihapus
Jika Anda menghapus cluster lingkungan sebelum lingkungan itu sendiri, maka berupaya menghapus lingkungan Anda akan mengakibatkan error berikut:
Got error "" during CP_DEPLOYMENT_DELETING [Rerunning Task. ]
Untuk menghapus lingkungan saat cluster GKE-nya sudah dihapus:
Buka halaman Deployment Manager di konsol Google Cloud.
Menemukan 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>
Menghapus secara manual resource yang masih tercantum di kedua deployment ini dan ada dalam proyek (misalnya, topik Pub/Sub dan langganan). Untuk melakukannya:
Pilih deployment.
Klik Hapus.
Pilih opsi Delete 2 deployment and semua resources yang dibuatnya, seperti VM, load balancer, dan disk, serta klik Hapus semua.
Operasi penghapusan gagal, tetapi resource yang tersisa akan dihapus.
Hapus deployment menggunakan salah satu opsi berikut:
Di konsol Google Cloud, pilih kembali kedua deployment. Klik Delete, lalu pilih Opsi Hapus 2 deployment, tetapi pertahankan resource yang dibuat olehnya.
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
Deployment Manager menampilkan informasi tentang fitur yang tidak didukung
Anda mungkin melihat peringatan berikut pada 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 Cloud Composer, Anda dapat mengabaikan peringatan ini.
Peringatan tentang entri duplikat 'echo' tugas yang termasuk dalam atribut 'echo-airflow_monitoring' DAG
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 Airflow DAG dan pemrosesan tugas.
Kami sedang berupaya meningkatkan kualitas layanan Cloud Composer untuk menghapus peringatan ini dari log Airflow.
Pembuatan lingkungan gagal dalam project dengan Identity-Aware Proxy API yang ditambahkan ke perimeter Kontrol Layanan VPC
Dalam project yang mengaktifkan Kontrol Layanan VPC,
akun cloud-airflow-prod@system.gserviceaccount.com
memerlukan
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@system.gserviceaccount.com
sebagai anggota perimeter keamanan Anda dengan menggunakan konfigurasi berikut dalam file kondisi YAML:- members: - serviceAccount:cloud-airflow-prod@system.gserviceaccount.com
Pembuatan lingkungan Cloud Composer 1 gagal saat kebijakan compute.requireOsLogin
diaktifkan
Jika kebijakan compute.requireOsLogin
disetel ke true
di project Anda,
Operasi pembuatan lingkungan Cloud Composer 1 v1 gagal.
Untuk membuat lingkungan Cloud Composer 1, nonaktifkan kebijakan ini di proyek.
Untuk informasi selengkapnya tentang kebijakan organisasi ini, lihat Batasan kebijakan organisasi.
Pembuatan atau upgrade lingkungan Cloud Composer gagal saat compute.vmExternalIpAccess
dinonaktifkan
Cluster GKE milik Cloud Composer dikonfigurasi di
mode IP Publik memerlukan
konektivitas eksternal untuk VM mereka. Karena ini,
kebijakan compute.vmExternalIpAccess
tidak dapat melarang pembuatan VM
dengan alamat IP eksternal. Untuk informasi selengkapnya tentang kebijakan organisasi ini, lihat
Batasan kebijakan organisasi.
Pembuatan lingkungan Cloud Composer gagal jika kebijakan compute.vmCanIpForward
dinonaktifkan
Lingkungan Cloud Composer 1 yang dibuat di mode native non-VPC (menggunakan IP alias) memerlukan kebijakan ini untuk memungkinkan pembuatan VM dengan "Penerusan IP" yang diaktifkan aplikasi baru. Untuk informasi selengkapnya tentang kebijakan organisasi ini, lihat Batasan kebijakan organisasi.
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
dan menjalankannya gagal dengan error Unable to read remote log...
. Ini
terjadi karena file DAG disinkronkan antara
bucket lingkungan, pekerja Airflow, dan penjadwal Airflow
lingkungan fleksibel App Engine. Sinkronisasi ini dilakukan secara terpisah. Jika penjadwal
mendapatkan file DAG dan menjadwalkannya untuk dijalankan oleh pekerja, dan jika
worker belum memiliki file DAG, maka eksekusi tugas akan gagal.
Sebagai solusinya, lingkungan Airflow 2 di Cloud Composer 1.17.0-preview.9 dan yang lebih baru versi adalah dikonfigurasi guna melakukan dua percobaan ulang untuk tugas yang gagal secara default. Jika tugas gagal, percobaan dicoba ulang dua kali dengan interval 5 menit.
Untuk menggunakan solusi masalah ini di Airflow 1,
ganti
opsi konfigurasi Airflow core-default_task_retries
dan setel ke
angka yang lebih besar dari atau sama dengan 2
.
Tugas gagal dengan 'OSError: [Errno 5] Error input/output' di Airflow 1.10.15 atau versi sebelumnya
Bug di versi Airflow 1 menyebabkan tugas dimasukkan ke antrean Redis dua kali dalam dalam beberapa kasus yang jarang terjadi.
Terkadang dapat menyebabkan kondisi race pada file log, dan kondisi
kegagalan tugas. Tugas gagal dengan OSError: [Errno 5] Input/output error
dalam
Cloud Logging dan
Task is in the 'running' state which is not a valid state for execution.
di log percobaan tugas.
Bug ini telah diperbaiki di Airflow 2. Jika Anda mengalami masalah ini di Airflow 1
pada tugas yang berjalan lama,
meningkatkan nilai
dari [celery_broker_transport_options]visibility_timeout
Airflow
opsi konfigurasi (nilai defaultnya adalah 604800
untuk Composer 1.17.0,
21600
untuk lingkungan lama). Untuk tugas jangka pendek, pertimbangkan menambahkan
percobaan ulang tambahan ke tugas yang terpengaruh atau memigrasikan lingkungan Anda ke
Aliran udara 2.
Operator Dataproc/Dataflow gagal dengan Negsignal.SIGSEGV
Ini adalah masalah intermiten dari library grcpio
, jika digunakan dari Seledri
pekerja. Masalah ini memengaruhi Airflow 1.10.14 dan versi yang lebih baru.
Solusinya adalah mengubah strategi polling grpcio
dengan
menambahkan variabel lingkungan berikut
dengan lingkungan Anda: GRPC_POLL_STRATEGY=epoll1
. Solusi ini sudah
diterapkan di Cloud Composer 1.17.1 dan versi yang lebih baru.
Pengumuman tentang penghapusan dukungan untuk API Beta yang tidak digunakan lagi dari versi GKE
Cloud Composer mengelola layanan dasar Cloud Composer Cluster GKE. Kecuali jika Anda secara eksplisit menggunakan API tersebut dalam DAG dan kode, Anda dapat mengabaikan pengumuman tentang GKE Penghentian API. Cloud Composer menangani migrasi, jika diperlukan.
Upgrade GKE dalam konteks masalah keamanan CVE-2021-25741
Semua cluster GKE Cloud Composer yang sudah ada akan diupgrade secara otomatis ke versi GKE yang lebih baru dengan perbaikan untuk masalah yang dijelaskan di CVE-2021-25741.
Jika Anda ingin segera mengatasi kerentanan ini, upgrade cluster GKE lingkungan Anda dengan mengikuti instruksi untuk mengupgrade cluster,
Jika Anda memiliki lingkungan Cloud Composer 1 dan versi GKE 1.18.x atau yang lebih lama lalu upgrade ke 1.18.20-gke.4501.
Jika Anda memiliki lingkungan Cloud Composer 1 dan versi GKE 1.19.x kemudian upgrade ke 1.19.14-gke.301.
Jika Anda memiliki lingkungan Cloud Composer 2 dan versi GKE 1.21.x kemudian upgrade ke 1.21.4-gke.301.
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 terperinci dan kami yakin bahwa Cloud Composer tidak rentan terhadap eksploit ini.
Pekerja atau penjadwal Airflow mungkin mengalami masalah saat mengakses bucket Cloud Storage lingkungan
Cloud Composer menggunakan gcsfuse untuk mengakses folder /data
di
bucket lingkungan dan 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
Transport endpoint is not connected
error dalam log Airflow.
Solusi:
- Nonaktifkan menyimpan log ke bucket lingkungan. Opsi ini sudah dinonaktifkan secara default jika lingkungan dibuat menggunakan Cloud Composer 2.8.0 atau versi yang lebih baru.
- Upgrade ke Cloud Composer 2.8.0 atau versi yang lebih baru.
- Mengurangi
[celery]worker_concurrency
dan meningkatkan 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 tidak memuat ulang plugin setelah diubah
Jika plugin terdiri dari banyak file yang mengimpor modul lain, maka UI Airflow mungkin tidak dapat mengenali fakta bahwa plugin seharusnya dimuat ulang. Dalam kasus semacam ini, kita perlu memicu mulai ulang server web Airflow. Anda dapat melakukannya dengan menambahkan variabel lingkungan atau melalui instalasi atau uninstal dependensi PYPI. Anda juga dapat memulai ulang server web Airflow.
Masalah berjeda saat berkomunikasi dengan Airflow Metadata Database
Masalah umum ini hanya berlaku untuk Cloud Composer 1.
Beberapa lingkungan Cloud Composer 1 lama (1.16.3 atau yang lebih lama) yang dibuat sebelumnya 12 Agustus 2021 mungkin mengalami masalah sementara terkait komunikasi dengan DB Metadata Airflow.
Jika mengalami masalah ini, Anda akan melihat log tugas Airflow pesan error berikut:
"Can't connect to MySQL server on 'airflow-sqlproxy-service.default.svc.cluster.local' (104)"
Tim Cloud Composer berupaya mengatasi masalah ini. Sementara itu, jika Anda yakin bahwa Anda sangat terpengaruh oleh masalah ini, Anda dapat melakukan hal berikut untuk menghilangkannya:
- Di Konsol Google Cloud, buka halaman Environment Configuration tentang lingkungan Cloud Composer yang terpengaruh.
- Klik link lihat detail cluster untuk menjelajahinya ke cluster GKE dasar di lingkungan.
Buka tab Nodes, lalu klik default-pool yang terlihat di bagian Node Pools.
Klik Edit di bagian atas halaman.
Ubah jenis image menjadi Container-Optimized OS with containerd, lalu simpan konfigurasi sebagaimana ditunjukkan di bawah ini.
Setelah perubahan dikirim, kumpulan node default-pool Anda akan dikonfigurasi ulang untuk menggunakan containerd sebagai runtime container-nya. Beberapa tugas Airflow Anda mungkin gagal saat kumpulan node sedang dikonfigurasi ulang. Jika tugas tersebut memiliki percobaan ulang yang telah dikonfigurasi, akan dijalankan kembali oleh Airflow setelah operasi pada kumpulan node selesai.
Cluster lingkungan memiliki workload dalam status Tidak dapat dijadwalkan
Masalah umum ini hanya berlaku untuk Cloud Composer 2.
Di Cloud Composer 2, setelah lingkungan dibuat, beberapa workload di cluster lingkungan tetap dalam status Tidak dapat dijadwalkan.
Saat sebuah lingkungan meningkatkan skala, pod pekerja baru akan dibuat dan Kubernetes akan mencoba menjalankannya. Jika tidak ada resource gratis yang tersedia untuk menjalankannya, pod pekerja akan ditandai sebagai Tidak dapat dijadwalkan.
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 dijadwalkan bernama composer-gcsfuse
dan composer-fluentd
yang tidak
dapat dimulai pada node yang tidak memiliki komponen Airflow dan tidak memengaruhi lingkungan Anda.
Jika masalah ini berlanjut dalam waktu yang lama (lebih dari 1 jam), Anda dapat memeriksa Cluster Log Autoscaler. 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>"
Dokumen ini berisi informasi tentang keputusan yang dibuat oleh Autoscaler Cluster: perluas noDecisionStatus untuk melihat alasan mengapa 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 Cloud Composer 2) Masalah konektivitas. Jika UI Airflow bersifat permanen
tidak tersedia, dan pesan error waktu tunggu atau error 504 muncul, pastikan
dapat mengakses
*.composer.cloud.google.com
. Jika Anda menggunakan Akses Google Pribadi dan mengirim traffic melaluiprivate.googleapis.com
IP Virtual, atau Kontrol Layanan VPC, dan mengirim traffic melaluirestricted.googleapis.com
IP Virtual, pastikan Cloud DNS Anda juga dikonfigurasi untuk*.composer.cloud.google.com
nama domain. - Server web Airflow yang tidak responsif. Jika {i>error<i} 504 tetap ada, tetapi Anda masih dapat mengakses UI Airflow pada waktu tertentu, maka server web Airflow mungkin tidak responsif karena kewalahan. Upaya untuk meningkatkan skala dan parameter performa dari 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 memulainya, server web membutuhkan file konfigurasi yang disinkronkan terlebih dahulu. Periksa log server web untuk entri log yang terlihat seperti:
GCS sync exited with 1: gcloud storage cp gs://<bucket-name>/airflow.cfg /home/airflow/gcs/airflow.cfg.tmp
atauGCS 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 yang masih ada di bucket lingkungan.Jika pengguna tersebut tidak sengaja terhapus (misalnya, karena retensi kebijakan dikonfigurasi), Anda dapat memulihkannya:
Tetapkan variabel lingkungan baru di lingkungan Anda. Anda dapat menggunakan menggunakan nama dan nilai variabel.
Mengganti opsi konfigurasi Airflow. Anda dapat menggunakan kolom yang tidak ada Opsi konfigurasi Airflow.
Mengarahkan kursor ke instance tugas dalam Tampilan hierarki memunculkan TypeError yang tidak tertangkap
Di Airflow 2, tampilan Hierarki di UI Airflow terkadang tidak berfungsi dengan benar saat zona waktu non-default digunakan. Sebagai solusi untuk hal ini, masalah tersebut, mengonfigurasi zona waktu secara eksplisit di UI Airflow.
UI Airflow di Airflow 2.2.3 atau versi yang lebih lama rentan terhadap CVE-2021-45229
Sebagaimana ditunjukkan dalam CVE-2021-45229,
"Trigger DAG with config" (Pemicu DAG dengan konfigurasi) rentan terhadap serangan XSS
melalui argumen kueri origin
.
Rekomendasi: Upgrade ke versi Cloud Composer terbaru yang mendukung Airflow 2.2.5.
Pekerja memerlukan lebih banyak memori daripada versi Airflow sebelumnya
Gejala:
Di lingkungan Cloud Composer 2, semua workload cluster lingkungan Pekerja Airflow dalam status
CrashLoopBackOff
dan tidak dijalankan tugas klasifikasi. Anda juga dapat melihatOOMKilling
peringatan yang dibuat jika Anda yang terdampak oleh masalah ini.Masalah ini dapat mencegah upgrade lingkungan.
Penyebab:
- Jika Anda menggunakan nilai kustom untuk
[celery]worker_concurrency
Aliran udara opsi konfigurasi dan setelan memori kustom untuk worker Airflow, Anda mungkin mengalami masalah ini saat konsumsi resource mendekati batas. - Persyaratan memori pekerja Airflow di Airflow 2.6.3 dengan Python 3.11 adalah 10% lebih tinggi dibandingkan pekerja pada versi sebelumnya.
- Persyaratan memori pekerja Airflow di Airflow 2.3 dan versi yang lebih baru adalah 30% lebih tinggi dibandingkan dengan pekerja di Airflow 2.2 atau Airflow 2.1.
Solusi:
- Hapus penggantian untuk
worker_concurrency
, sehingga Cloud Composer 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 Airflow pekerja.
- Jika Anda tidak dapat mengupgrade lingkungan ke versi yang lebih baru karena tindakan ini lalu menerapkan salah satu solusi yang diusulkan sebelum meningkatkan versi.
Pemicu DAG melalui jaringan pribadi menggunakan fungsi Cloud Run
Memicu DAG dengan fungsi Cloud Run melalui jaringan pribadi dengan penggunaan VPC Connector tidak didukung oleh Cloud Composer.
Rekomendasi: Gunakan fungsi Cloud Run untuk memublikasikan pesan di Pub/Sub. Peristiwa tersebut dapat mengaktifkan Sensor Pub/Sub untuk memicu DAG Airflow atau menerapkan pendekatan berdasarkan operator yang dapat ditangguhkan.
Masalah dengan perintah gcloud composer pada versi 410.0.0
Di instance 410.0.0 versi gcloud, yaitu perintah Cloud Composer berikut:
gcloud composer environments run
gcloud composer environments list-packages
mengembalikan kode {i>error<i} bukan nol dan menampilkan pesan {i>error<i} ini:
(ERROR: gcloud crashed (TypeError): 'NoneType' object is not callable)
Perilaku ini terjadi selain output reguler yang dihasilkan oleh menggunakan perintah gcloud dan tidak memengaruhi fungsinya.
Jika masalah ini tidak memengaruhi operasi, Anda dapat terus menggunakan versi 410.0.0 dan mengabaikan pesan error yang salah. Jika Anda perlu menggunakan versi 410.0.0 dan menggunakan perintah gcloud secara terprogram, terapkan logika tambahan untuk mengabaikan kode error yang bukan nol dan informasi tentang stacktrace error dalam output. Anda juga dapat melihat bagian Solusi untuk solusi lainnya.
Solusi
- Jangan mengupgrade ke versi 410.0.0. Gunakan versi 409.0.0 atau sebelumnya.
- Jika sudah diupgrade, downgrade ke versi sebelumnya (misalnya 409.0.0). Untuk mengetahui informasi selengkapnya, lihat Menggunakan arsip berversi.
Folder kosong di Scheduler dan Workers
Cloud Composer tidak menghapus folder kosong dari Airflow secara aktif pekerja dan penjadwal. Entitas tersebut mungkin dibuat sebagai hasil dari lingkungan proses sinkronisasi bucket saat folder ini ada dalam bucket dan akhirnya dihapus.
Rekomendasi: Sesuaikan DAG Anda agar siap untuk melewati bagian kosong tersebut folder.
Entitas tersebut pada akhirnya akan dihapus dari penyimpanan lokal penjadwal Airflow dan pekerja saat komponen ini dimulai ulang (misalnya, sebagai hasil penskalaan atau pemeliharaan di cluster Cloud Composer).
Dukungan untuk Kerberos
Cloud Composer belum mendukung konfigurasi Kerberos Airflow.
Dukungan untuk class komputasi di Cloud Composer 2
Cloud Composer 2 hanya mendukung tujuan umum class komputasi. Artinya, menjalankan Pod yang meminta class komputasi lain (seperti Seimbang atau Penyebaran Skala) tidak dimungkinkan.
Class tujuan umum dapat digunakan untuk menjalankan Pod yang meminta hingga 110 GB dengan memori hingga 30 CPU (seperti yang dijelaskan dalam Permintaan Maksimal Kelas Komputasi.
Jika Anda ingin menggunakan arsitektur berbasis ARM atau memerlukan lebih banyak CPU dan Memori, maka Anda harus menggunakan class komputasi lain, yang tidak didukung dalam 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 membutuhkan class komputasi
berbeda, maka Pod tersebut juga harus menjalankan
di cluster non-Cloud Composer 2.
Dukungan untuk Operator Google Campaign Manager 360
Operator Google Campaign Manager di versi Cloud Composer sebelumnya daripada 2.1.13 didasarkan pada Campaign Manager 360 v3.5 API yang sudah tidak digunakan lagi dan tanggal penghentiannya adalah 1 Mei 2023.
Jika Anda menggunakan operator Google Campaign Manager, upgrade lingkungan Anda ke Cloud Composer versi 2.1.13 atau yang lebih baru.
Dukungan untuk Operator Google Display & Video 360
Operator Google Display & Video 360 dalam versi Cloud Composer versi lebih lama dari 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 Cloud Composer versi 2.1.13 atau yang lebih baru. Selain itu, Anda mungkin perlu mengubah DAG karena beberapa operator Google Display & Video 360 tidak digunakan lagi dan diganti dengan yang baru.
GoogleDisplayVideo360CreateReportOperator
kini tidak digunakan lagi. Sebagai gantinya, gunakanGoogleDisplayVideo360CreateQueryOperator
. Operator ini menampilkanquery_id
, bukanreport_id
.GoogleDisplayVideo360RunReportOperator
kini tidak digunakan lagi. Sebagai gantinya, gunakanGoogleDisplayVideo360RunQueryOperator
. Operator ini menampilkanquery_id
danreport_id
, bukan hanyareport_id
, dan memerlukanquery_id
, bukanreport_id
sebagai parameter.- Untuk memeriksa apakah laporan sudah siap, gunakan
Sensor
GoogleDisplayVideo360RunQuerySensor
yang menggunakanquery_id
dan Parameterreport_id
.GoogleDisplayVideo360ReportSensor
yang tidak digunakan lagi sensor hanya memerlukanreport_id
. GoogleDisplayVideo360DownloadReportV2Operator
sekarang memerlukanquery_id
danreport_id
.- Di
GoogleDisplayVideo360DeleteReportOperator
tidak ada perubahan yang dapat memengaruhi DAG.
Pembatasan nama Rentang Sekunder
CVE-2023-29247 (Halaman detail instance tugas di UI rentan terhadap XSS yang disimpan)
UI Airflow dalam versi Airflow dari 2.0.x hingga 2.5.x rentan terhadap CVE-2023-29247.
Jika Anda menggunakan Cloud Composer versi sebelumnya dari 2.4.2 dan menduga bahwa lingkungan Anda mungkin rentan terhadap eksploitasi tersebut, baca deskripsi berikut dan kemungkinan solusinya.
Di Cloud Composer, akses ke UI Airflow adalah dilindungi dengan IAM dan kontrol akses UI Airflow.
Ini berarti bahwa untuk memanfaatkan kerentanan UI Airflow, penyerang pertama-tama harus mendapatkan akses ke proyek Anda bersama dengan Izin dan peran IAM.
Solusi:
Memverifikasi izin dan peran IAM dalam project Anda, termasuk Peran Cloud Composer yang ditetapkan ke masing-masing pengguna. Pastikan hanya pengguna yang disetujui yang dapat mengakses UI Airflow.
Verifikasi peran yang ditetapkan kepada pengguna melalui Kontrol akses UI Airflow mekanisme berbeda (ini adalah mekanisme terpisah yang menyediakan akses yang lebih terperinci ke UI Airflow). Pastikan hanya pengguna yang disetujui yang dapat mengakses UI Airflow dan semua pengguna baru didaftarkan dengan peran yang tepat.
Pertimbangkan hardening tambahan dengan Kontrol Layanan VPC.
DAG pemantauan aliran udara lingkungan Cloud Composer 2 tidak dibuat ulang setelah dihapus
DAG pemantauan aliran udara tidak dibuat ulang secara otomatis jika dihapus oleh pengguna atau dipindahkan dari bucket di lingkungan composer 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 menyalin DAG airflow_monitoring dari lingkungan lain dengan versi yang sama.
Operasi upgrade mungkin gagal jika Sentry diaktifkan
Operasi upgrade untuk lingkungan Cloud Composer mungkin gagal
jika Anda mengonfigurasi Sentry di lingkungan Anda dan menyetel [sentry]sentry_on
menyetelnya ke true
.
Solusi:
- Nonaktifkan Sentry di lingkungan Anda, lakukan upgrade, dan konfigurasi Sentry lagi.
Penyimpanan Cloud SQL tidak dapat dikurangi
Cloud Composer menggunakan Cloud SQL untuk menjalankan database Airflow. Lebih penyimpanan disk instance Cloud SQL mungkin bertambah karena disk ditingkatkan skalanya agar sesuai dengan data yang disimpan oleh operasi Cloud SQL saat Database Airflow berkembang.
Mengurangi ukuran disk Cloud SQL tidak dapat dilakukan.
Sebagai solusinya, jika Anda ingin menggunakan disk Cloud SQL terkecil Anda dapat membuat ulang lingkungan Cloud Composer dengan snapshot.
Metrik penggunaan Disk Database tidak menyusut setelah menghapus kumpulan data dari Cloud SQL
{i>Database<i} relasional, seperti Postgres atau MySQL, tidak menghapus baris secara fisik saat mereka akan dihapus atau diperbarui. Sebaliknya, hal itu akan menandainya sebagai "tupel mati" untuk mempertahankan konsistensi data dan menghindari pemblokiran transaksi serentak.
Baik MySQL dan Postgres menerapkan mekanisme pemulihan ruang setelah dihapus {i>record<i}.
Meskipun Anda bisa memaksa {i>database<i} untuk mendapatkan kembali kapasitas {i>disk<i} yang tidak terpakai, adalah operasi yang membutuhkan banyak sumber daya yang juga mengunci {i>database<i} yang membuat Cloud Composer tidak tersedia. Oleh karena itu, sebaiknya Anda mengandalkan membangun mekanisme untuk memanfaatkan kembali ruang yang tidak terpakai.
Akses diblokir: Error Otorisasi
Jika masalah ini memengaruhi pengguna,
Dialog Akses diblokir: Error Otorisasi berisi
Error 400: admin_policy_enforced
pesan.
Jika Kontrol API > Aplikasi pihak ketiga yang tidak dikonfigurasi > Opsi Jangan izinkan pengguna mengakses aplikasi pihak ketiga diaktifkan di Google Workspace dan Apache Airflow di Aplikasi Cloud Composer tidak diizinkan secara eksplisit, pengguna tidak dapat mengakses UI Airflow kecuali jika mereka secara eksplisit mengizinkan aplikasi.
Untuk mengizinkan akses, lakukan langkah-langkah yang disediakan di Mengizinkan akses ke UI Airflow di Google Workspace.
Instance tugas yang berhasil sebelumnya ditandai sebagai GAGAL
Dalam beberapa situasi dan skenario yang jarang terjadi, instance tugas Airflow yang berhasil
yang telah berlalu dapat ditandai sebagai FAILED
.
Jika itu terjadi, biasanya itu dipicu oleh pembaruan lingkungan atau upgrade, atau pemeliharaan GKE.
Catatan: masalah itu sendiri tidak menunjukkan masalah apa pun di lingkungan dan hal ini tidak menyebabkan kegagalan sebenarnya dalam eksekusi tugas.
Masalah ini telah diperbaiki di Cloud Composer versi 2.6.5 atau yang lebih baru.
Komponen Airflow mengalami masalah saat berkomunikasi dengan bagian lain dari konfigurasi Cloud Composer
Dalam kasus yang sangat jarang terjadi, komunikasi ke Compute Engine menjadi lambat Server metadata dapat menyebabkan komponen Airflow tidak berfungsi secara optimal. Misalnya, scheduler Airflow mungkin dimulai ulang, tugas Airflow mungkin memerlukan dicoba ulang atau waktu {i>startup<i} tugas mungkin lebih lama.
Gejala:
Error berikut muncul di komponen Airflow log (seperti Airflow) penjadwal, pekerja, atau server web):
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:
Tetapkan variabel lingkungan berikut: GCE_METADATA_TIMEOUT=30
.
Folder /data tidak tersedia di server web Airflow
Di Cloud Composer 2, server web Airflow sebagian besar bersifat hanya baca
dan Cloud Composer tidak menyinkronkan folder data/
ke komponen ini.
Terkadang, Anda mungkin ingin berbagi file umum antara semua Airflow komponen, termasuk server web Airflow.
Solusi:
Gabungkan file yang akan dibagikan dengan server web ke dalam modul PYPI dan menginstalnya sebagai paket PYPI biasa. Setelah modul PYPI diinstal di lingkungan, file akan ditambahkan ke gambar Airflow dan tersedia untuk mereka.
Tambahkan file ke folder
plugins/
. Folder ini disinkronkan ke server web Airflow.
Waktu penguraian DAG yang tidak berkelanjutan dan diagram ukuran tas DAG dalam pemantauan
Waktu penguraian DAG yang tidak berkelanjutan dan diagram ukuran tas DAG pada pemantauan dasbor menunjukkan masalah dengan waktu penguraian DAG yang lama (lebih dari 5 menit).
Solusi: Sebaiknya pertahankan total waktu penguraian DAG kurang dari 5 menit. Untuk mengurangi DAG waktu penguraian, ikuti panduan penulisan DAG.