Masalah umum

Cloud Composer 1 | Cloud Composer 2

Halaman ini mencantumkan masalah umum Cloud Composer. Beberapa perbaikan untuk masalah ini sedang dalam proses, dan akan tersedia di versi mendatang.

Beberapa masalah memengaruhi versi lama, dan dapat diperbaiki dengan mengupgrade lingkungan Anda.

Rentang alamat IP non-RFC 1918 didukung sebagian untuk Pod dan Service

Cloud Composer bergantung pada GKE untuk memberikan dukungan bagi alamat non-RFC 1918 bagi Pod dan Service. Saat ini, hanya daftar rentang Non-RFC 1918 berikut yang 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

Airflow UI tidak menampilkan log tugas saat Serialisasi DAG diaktifkan di Composer 1.10.2 dan Composer 1.10.3

Jika serialisasi DAG diaktifkan di lingkungan yang menggunakan Composer versi 1.10.2 dan 1.10.3, log tidak akan 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 Penjadwal Airflow untuk instance tugas selama eksekusi tugas. Namun, log tersebut tidak menjelaskan penyebab kegagalan tugas, dan 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 beberapa 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 terhadap error tersebut yang berasal dari masalah yang sudah lama ada di Airflow, sangat disarankan untuk secara proaktif menerapkan strategi percobaan ulang yang sesuai di tingkat tugas dan DAG. Dengan menerapkan langkah-langkah ini, sistem dapat secara efektif memitigasi dampak kesalahan ini, sehingga meningkatkan keandalan dan ketahanan alur kerja secara keseluruhan.

Workload Identity GKE tidak didukung

Masalah ini hanya berlaku untuk lingkungan Cloud Composer 1. Lingkungan Cloud Composer 2 menggunakan Workload Identity.

Anda tidak dapat mengaktifkan Workload Identity untuk cluster lingkungan Cloud Composer. Oleh karena itu, Anda mungkin melihat temuan WORKLOAD_IDENTITY_DISABLED di Security Command Center.

Label lingkungan yang ditambahkan selama update tidak sepenuhnya disebarkan

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 kerentanan CVE-2020-14386 untuk semua lingkungan Cloud Composer. Sebagai bagian dari perbaikan, semua cluster GKE Cloud Composer yang ada akan diupdate ke versi yang lebih baru.

Pelanggan yang memutuskan untuk segera mengatasi kerentanan dapat mengupgrade Cluster GKE Composer dengan mengikuti petunjuk ini dengan pertimbangan berikut:

Langkah 1. Jika Anda menjalankan Cloud Composer versi sebelum 1.7.2, upgrade ke Cloud Composer versi yang lebih baru. Jika Anda sudah memiliki versi 1.7.2 atau yang lebih baru, silakan ke poin berikutnya.

Langkah 2. Upgrade cluster GKE (master dan node) ke versi patch 1.15 terbaru yang berisi perbaikan 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 konvensi penamaan untuk file log. Informasi zona kini 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

Akibatnya, jika Anda mengupgrade dari Airflow 1.9.0 ke Airflow 1.10.x dan ingin membaca log untuk tugas yang dijalankan 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 dihasilkan 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 yang menerapkan batasan kebijakan organisasi/compute.disableSerialPortLogging

Pembuatan lingkungan Cloud Composer akan gagal jika constraints/compute.disableSerialPortLogging diterapkan di project target.

Diagnosis

Untuk mengetahui apakah Anda terpengaruh oleh masalah ini, ikuti prosedur berikut:

Buka menu GKE di Google Cloud Console. Buka menu GKE

Kemudian, pilih cluster yang baru Anda buat. 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:

  1. Nonaktifkan kebijakan organisasi di project tempat lingkungan Cloud Composer 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.

  2. Menggunakan filter pengecualian

    Penggunaan filter pengecualian untuk log port serial. mencapai tujuan yang sama seperti menonaktifkan kebijakan organisasi, karena akan ada log konsol serial dalam Logging. Untuk mengetahui detail selengkapnya, lihat halaman Filter pengecualian.

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 bulan Desember 2020, Anda mungkin telah menerima informasi yang mungkin diperlukan untuk melakukan konfigurasi Kontrol Layanan VPC tambahan agar dapat menggunakan Deployment Manager untuk mengelola resource yang dilindungi oleh Kontrol Layanan VPC.

Kami ingin mengklarifikasi bahwa Anda tidak perlu melakukan tindakan apa pun jika menggunakan Composer dan Anda tidak menggunakan Deployment Manager secara langsung untuk mengelola resource Google Cloud yang disebutkan dalam pengumuman Deployment Manager.

Tidak dapat menghapus lingkungan setelah cluster GKE dihapus

Jika Anda menghapus cluster lingkungan sebelum lingkungan itu sendiri, upaya untuk menghapus lingkungan akan mengakibatkan error berikut:

 Got error "" during CP_DEPLOYMENT_DELETING [Rerunning Task. ]

Untuk menghapus lingkungan saat cluster GKE-nya sudah dihapus:

  1. Buka halaman Deployment Manager di Konsol Google Cloud.

    Buka halaman Deployment Manager

  2. 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>
  3. Menghapus secara manual resource yang masih tercantum dalam dua deployment ini dan yang ada di project (misalnya, topik dan langganan Pub/Sub). Untuk melakukannya:

    1. Pilih deployment.

    2. Klik Delete.

    3. Pilih opsi Delete 2 deployment dan semua resource yang dibuat oleh mereka, seperti VM, load balancers and disks, lalu klik Delete all.

    Operasi penghapusan gagal, tetapi resource yang tersisa dihapus.

  4. Hapus deployment menggunakan salah satu opsi berikut:

    • Di Konsol Google Cloud, pilih kedua deployment lagi. Klik Delete, lalu pilih opsi Delete 2 deployment, 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
      
  5. Menghapus lingkungan Cloud Composer Anda.

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 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 layanan Cloud Composer untuk menghapus peringatan ini dari log Airflow.

Pembuatan lingkungan gagal dalam project dengan Identity-Aware Proxy API ditambahkan ke perimeter Kontrol Layanan VPC

Dalam project yang mengaktifkan Kontrol Layanan VPC, akun cloud-airflow-prod@system.gserviceaccount.com 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@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 akan gagal.

Untuk membuat lingkungan Cloud Composer 1, nonaktifkan kebijakan ini di project Anda.

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 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 informasi selengkapnya tentang kebijakan organisasi ini, lihat Batasan kebijakan organisasi.

Pembuatan lingkungan Cloud Composer gagal saat kebijakan compute.vmCanIpForward dinonaktifkan

Lingkungan Cloud Composer 1 yang dibuat dalam mode non-VPC-Native (menggunakan IP alias) mewajibkan kebijakan ini untuk mengizinkan pembuatan VM dengan fitur "Penerusan IP" yang diaktifkan. Untuk informasi selengkapnya tentang kebijakan organisasi ini, lihat Batasan kebijakan organisasi.

Beberapa tugas gagal yang dijalankan DAG pertama untuk file DAG yang diupload

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

Sebagai solusinya, lingkungan Airflow 2 di Cloud Composer 1.17.0-preview.9 dan versions yang lebih baru dikonfigurasi untuk melakukan dua percobaan ulang untuk tugas yang gagal secara default. Jika gagal, tugas akan dicoba lagi dua kali dengan interval 5 menit.

Untuk menggunakan solusi masalah ini di Airflow 1, ganti opsi konfigurasi Airflow core-default_task_retries dan tetapkan ke angka yang lebih besar dari atau sama dengan 2.

Tugas gagal dengan 'OSError: [Errno 5] Input/output error' di Airflow 1.10.15 atau versi sebelumnya

Bug dalam versi Airflow 1 menyebabkan tugas dimasukkan ke antrean Redis dua kali dalam beberapa kasus yang jarang terjadi.

Terkadang hal ini dapat menyebabkan kondisi race pada file log, dan kegagalan tugas berikutnya. Tugas gagal dengan OSError: [Errno 5] Input/output error di Cloud Logging dan Task is in the 'running' state which is not a valid state for execution. di log upaya tugas.

Bug ini telah diperbaiki di Airflow 2. Jika Anda mengalami masalah ini di Airflow 1 dalam tugas yang berjalan lama, tingkatkan nilai opsi konfigurasi [celery_broker_transport_options]visibility_timeout Airflow (nilai defaultnya adalah 604800 untuk Composer 1.17.0, 21600 untuk lingkungan yang lebih lama). Untuk tugas yang berjalan singkat, sebaiknya tambahkan percobaan ulang lainnya ke tugas yang terpengaruh atau migrasikan lingkungan Anda ke Airflow 2.

Operator Dataproc/Dataflow gagal dengan Negsignal.SIGSEGV

Ini adalah masalah sesekali pada library grcpio, saat digunakan dari pekerja Celery. Masalah ini memengaruhi Airflow 1.10.14 dan versi yang lebih baru.

Solusinya adalah mengubah strategi polling grpcio dengan menambahkan variabel lingkungan berikut ke 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 cluster GKE yang dimiliki Cloud Composer. Jika Anda tidak menggunakan API tersebut secara eksplisit dalam DAG dan kode, Anda dapat mengabaikan pengumuman tentang penghentian GKE API. Cloud Composer menangani migrasi apa pun, jika diperlukan.

Upgrade GKE dalam konteks masalah keamanan CVE-2021-25741

Semua cluster GKE Cloud Composer yang ada akan diupgrade otomatis ke versi GKE yang lebih baru dengan perbaikan untuk masalah yang dijelaskan dalam CVE-2021-25741.

Jika Anda ingin segera mengatasi kerentanan ini, upgrade cluster GKE lingkungan Anda dengan mengikuti petunjuk untuk mengupgrade cluster,

  • Jika Anda memiliki lingkungan Cloud Composer 1 dan GKE versi 1.18.x atau yang lebih lama, upgrade ke versi 1.18.20-gke.4501.

  • Jika Anda memiliki lingkungan Cloud Composer 1 dan GKE versi 1.19.x, upgrade ke versi 1.19.14-gke.301.

  • Jika Anda memiliki lingkungan Cloud Composer 2 dan GKE versi 1.21.x, upgrade ke versi 1.21.4-gke.301.

Cloud Composer tidak boleh 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.

Cloud Composer 2: Pekerja atau penjadwal Airflow mungkin mengalami masalah saat mengakses bucket Cloud Storage

Dalam beberapa situasi sporadis, jika ada lingkungan Cloud Composer 2 saat pekerja Airflow atau penjadwal Airflow dimulai ulang, kemungkinan akan terjadi malfungsi dan mengalami masalah saat mengakses konten bucket Cloud Storage.

Dalam situasi seperti itu, Anda mungkin melihat error yang dimulai dengan: Transport endpoint is not connected dalam log Airflow.

Misalnya, log error untuk pekerja Airflow mungkin terlihat seperti ini:

[Errno 107] Transport endpoint is not connected: '/home/airflow/gcs/logs/airflow_monitoring/echo/2022-01-11T22:50:48+00:00'

Solusi:

  • Mengupgrade ke Cloud Composer 2.0.26 atau versi terbaru yang lebih baru

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 kasus seperti itu, Anda perlu memicu mulai ulang server web Airflow. Anda dapat melakukannya dengan menambahkan variabel lingkungan, atau melalui penginstalan atau uninstal dependensi PYPI. Anda juga dapat memulai ulang server web Airflow.

Masalah sesekali saat berkomunikasi dengan Database Metadata Airflow

Masalah umum ini hanya berlaku untuk Cloud Composer 1.

Beberapa lingkungan Cloud Composer 1 lama (1.16.3 atau yang lebih lama) yang dibuat sebelum 12 Agustus 2021 mungkin mengalami masalah sementara terkait komunikasi ke Airflow Metadata DB.

Jika mengalami masalah ini, Anda akan melihat pesan error berikut di log tugas Airflow:

"Can't connect to MySQL server on 'airflow-sqlproxy-service.default.svc.cluster.local' (104)"

Tim Cloud Composer sedang berupaya mengatasi masalah ini. Sementara itu, jika Anda yakin bahwa Anda sangat terdampak oleh masalah ini, Anda dapat melakukan hal berikut untuk menghilangkannya:

  1. Di Konsol Google Cloud, buka halaman Environment Configuration di lingkungan Cloud Composer yang terpengaruh.
  2. Ikuti link lihat detail cluster untuk membuka cluster GKE yang mendasarinya di lingkungan.
  3. Buka tab Nodes, lalu klik default-pool yang terlihat di bagian Node Pools. pilih kumpulan default
  4. Klik Edit di bagian atas halaman.
  5. Ubah jenis image menjadi Container-Optimized OS with containerd dan simpan konfigurasi seperti yang ditunjukkan di bawah ini. Mengubah jenis image Kumpulan Node dari Docker ke container
  6. 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 dikonfigurasi ulang. Jika telah dikonfigurasi percobaan ulang, tugas-tugas tersebut 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 beban kerja di cluster lingkungan tetap dalam status Tidak Dapat Dijadwalkan.

Saat skala lingkungan ditingkatkan, 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, Cluster Autoscaler menambahkan lebih banyak node, yang memerlukan waktu beberapa menit. Hingga prosesnya 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 tempat komponen Airflow tidak ada tidak memengaruhi lingkungan Anda.

Jika masalah ini berlanjut dalam waktu lama (lebih dari 1 jam), Anda dapat memeriksa log Cluster 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>"

Objek ini berisi informasi tentang keputusan yang dibuat oleh Cluster Autoscaler: perluas noDecisionStatus 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 penyebab:

  • 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 tidak tersedia secara permanen, dan waktu tunggu habis atau error 504 muncul, pastikan lingkungan Anda dapat mengakses *.composer.cloud.google.com. Jika Anda menggunakan Akses Google Pribadi 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 masih berlanjut, tetapi Anda masih dapat mengakses UI Airflow pada waktu tertentu, server web Airflow mungkin tidak responsif karena kelebihan beban. 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 penyebab:

  • Masalah komunikasi sementara. Coba akses UI Airflow nanti.

  • Gagal memulai server web. Untuk memulai, server web mengharuskan file konfigurasi disinkronkan terlebih dahulu. Periksa log server web untuk menemukan entri log yang terlihat seperti: GCS sync exited with 1: gsutil -m cp gs://<bucket-name>/airflow.cfg /home/airflow/gcs/airflow.cfg.tmp atau GCS sync exited with 1: gsutil -m 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 penghapusannya tidak disengaja (misalnya, karena kebijakan retensi telah 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.

Airflow UI di Airflow 2.2.3 atau versi yang lebih lama rentan terhadap CVE-2021-45229

Seperti yang disebutkan dalam CVE-2021-45229, layar "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 di versi Airflow sebelumnya

Gejala:

  • Di lingkungan Cloud Composer 2, semua workload cluster lingkungan untuk pekerja Airflow berada dalam status CrashLoopBackOff dan tidak menjalankan tugas. Anda juga dapat melihat peringatan OOMKilling yang dihasilkan jika terpengaruh oleh masalah ini.

  • Masalah ini dapat mencegah upgrade lingkungan.

Penyebab:

  • Jika menggunakan nilai kustom untuk opsi konfigurasi [celery]worker_concurrency Airflow dan setelan memori kustom untuk pekerja Airflow, Anda mungkin akan mengalami masalah ini saat konsumsi resource mendekati batas.
  • Persyaratan memori pekerja Airflow di Airflow 2.6.3 dengan Python 3.11 10% lebih tinggi dibandingkan pekerja di versi sebelumnya.
  • Persyaratan memori pekerja Airflow di Airflow 2.3 dan versi yang lebih baru 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 pekerja Airflow.
  • Jika Anda tidak dapat mengupgrade lingkungan ke versi yang lebih baru karena masalah ini, terapkan salah satu solusi yang diusulkan sebelum melakukan upgrade.

Pemicu DAG melalui jaringan pribadi menggunakan Cloud Functions

Memicu DAG dengan Cloud Functions melalui jaringan pribadi menggunakan VPC Connector tidak didukung oleh Cloud Composer.

Rekomendasi: Gunakan Cloud 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 ditangguhkan.

Masalah terkait perintah gcloud composer pada versi 410.0.0

Pada gcloud versi 410.0.0, perintah Cloud Composer berikut:

  • gcloud composer environments run
  • gcloud composer environments list-packages

hasilkan kode error bukan nol dan tampilkan pesan error ini:

  (ERROR: gcloud crashed (TypeError): 'NoneType' object is not callable)

Perilaku ini terjadi selain output reguler yang dihasilkan oleh perintah gcloud dan tidak memengaruhi fungsinya.

Jika masalah ini tidak memengaruhi operasi Anda, 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, maka terapkan logika tambahan untuk mengabaikan kode error bukan nol dan info tentang stacktrace error dalam output. Anda juga dapat melihat bagian Solusi untuk mengetahui solusi lainnya.

Solusi

Folder kosong di Scheduler dan Pekerja

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

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

Entitas tersebut pada akhirnya akan dihapus dari penyimpanan lokal penjadwal dan pekerja Airflow saat komponen ini dimulai ulang (misalnya, akibat dari penurunan skala atau operasi pemeliharaan di cluster Cloud Composer).

Dukungan untuk Kerberos

Cloud Composer belum mendukung konfigurasi Airflow Kerberos.

Dukungan untuk class komputasi di Cloud Composer 2

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

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

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

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 berbeda, Pod kustom tersebut juga harus berjalan di cluster non-Cloud Composer 2.

Dukungan untuk Operator Google Campaign Manager 360

Operator Google Campaign Manager di Cloud Composer versi sebelum 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 dan Video 360

Operator Google Display dan Video 360 di Cloud Composer 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 Cloud Composer 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.

  • GoogleDisplayVideo360CreateReportOperator kini tidak digunakan lagi. Sebagai gantinya, gunakan GoogleDisplayVideo360CreateQueryOperator. Operator ini menampilkan query_id, bukan report_id.
  • GoogleDisplayVideo360RunReportOperator kini tidak digunakan lagi. Sebagai gantinya, gunakan GoogleDisplayVideo360RunQueryOperator. Operator ini menampilkan query_id dan report_id, bukan hanya report_id, dan memerlukan query_id, bukan report_id sebagai parameter.
  • Untuk memeriksa apakah laporan sudah siap, gunakan sensor GoogleDisplayVideo360RunQuerySensor baru yang menggunakan parameter query_id dan report_id. Sensor GoogleDisplayVideo360ReportSensor yang tidak digunakan lagi hanya memerlukan report_id.
  • GoogleDisplayVideo360DownloadReportV2Operator sekarang memerlukan parameter query_id dan report_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 yang disimpan)

UI Airflow di 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, baca deskripsi berikut dan solusi yang memungkinkan.

Di Cloud Composer, akses ke UI Airflow dilindungi dengan IAM dan Kontrol akses UI Airflow.

Artinya, untuk mengeksploitasi kerentanan UI Airflow, penyerang harus mendapatkan akses ke project Anda terlebih dahulu bersama dengan izin dan peran IAM yang diperlukan.

Solusi:

  • Verifikasi 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 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 tepat.

  • Pertimbangkan hardening tambahan dengan Kontrol Layanan VPC.

DAG pemantauan aliran udara lingkungan Cloud Composer 2 Composer tidak dibuat ulang setelah dihapus

DAG pemantauan aliran udara tidak secara otomatis dibuat kembali jika dihapus oleh pengguna atau dipindahkan dari bucket di lingkungan komposer dengan composer-2.1.4-airflow-2.4.3.

Solusi:

  • Hal ini telah diperbaiki dalam versi 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 akan gagal jika Anda mengonfigurasi Sentry di lingkungan Anda dan menetapkan setelan [sentry]sentry_on ke true.

Solusi:

  • Nonaktifkan Sentry di lingkungan Anda, lakukan upgrade, dan konfigurasikan Sentry lagi.

Penyimpanan Cloud SQL tidak dapat dikurangi

Cloud Composer menggunakan Cloud SQL untuk menjalankan database Airflow. Seiring waktu, penyimpanan disk untuk instance Cloud SQL mungkin bertambah karena disk ditingkatkan skalanya agar sesuai dengan data yang disimpan oleh operasi Cloud SQL saat database Airflow berkembang.

Perkecil ukuran disk Cloud SQL tidak dapat dilakukan.

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

Metrik penggunaan Disk Database tidak menyusut setelah menghapus record dari Cloud SQL

Database relasional, seperti Postgres atau MySQL, tidak menghapus baris secara fisik saat dihapus atau diperbarui. Sebaliknya, sistem akan menandainya sebagai "tule mati" untuk mempertahankan konsistensi data dan menghindari pemblokiran transaksi serentak.

Baik MySQL maupun Postgres menerapkan mekanisme pemulihan ruang setelah data yang dihapus.

Meskipun Anda dapat memaksa database untuk mengklaim kembali kapasitas disk yang tidak terpakai, ini adalah operasi yang membutuhkan banyak resource, yang juga mengunci database sehingga Cloud Composer tidak tersedia. Oleh karena itu, sebaiknya andalkan mekanisme build untuk mengklaim 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 API Controls > Unkonfigurasi third-party apps > Don't allow users to access any third-party apps 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 diberikan dalam Mengizinkan akses ke UI Airflow di Google Workspace.

Instance tugas yang berhasil di masa lalu ditandai sebagai FAILED (GAGAL)

Dalam beberapa situasi dan skenario yang jarang terjadi, instance tugas Airflow yang berhasil di masa lalu dapat ditandai sebagai FAILED.

Jika hal ini terjadi, biasanya masalah tersebut dipicu oleh update lingkungan atau operasi upgrade, atau oleh pemeliharaan GKE.

Catatan: masalah itu sendiri tidak menunjukkan masalah apa pun di lingkungan dan 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, kelambatan 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 kembali atau waktu startup tugas mungkin lebih lama.

Gejala:

Error berikut muncul di log komponen Airflow (seperti penjadwal Airflow, 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:

Setel variabel lingkungan berikut: GCE_METADATA_TIMEOUT=30.

Folder /data tidak tersedia di server web Airflow

Di Cloud Composer 2, server web Airflow dimaksudkan untuk sebagian besar berupa komponen hanya baca, dan Cloud Composer 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 dengan server web ke dalam modul PYPI dan instal sebagai paket PYPI reguler. Setelah modul PYPI diinstal di lingkungan, file ditambahkan ke gambar komponen Airflow dan tersedia untuk komponen tersebut.

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

Langkah selanjutnya