Masalah umum

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:

  1. 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.

  2. 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:

  1. Buka halaman Deployment Manager di konsol Google Cloud.

    Membuka halaman Deployment Manager

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

    1. Pilih deployment.

    2. Klik Hapus.

    3. 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.

  4. 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
      
  5. Hapus 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 '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:

  1. Di Konsol Google Cloud, buka halaman Environment Configuration tentang lingkungan Cloud Composer yang terpengaruh.
  2. Klik link lihat detail cluster untuk menjelajahinya ke cluster GKE dasar di lingkungan.
  3. Buka tab Nodes, lalu klik default-pool yang terlihat di bagian Node Pools.

    default-pool dalam daftar Node pool
    Gambar 1. kumpulan default dalam daftar kumpulan Node (klik untuk memperbesar)
  4. Klik Edit di bagian atas halaman.

  5. Ubah jenis image menjadi Container-Optimized OS with containerd, lalu simpan konfigurasi sebagaimana ditunjukkan di bawah ini.

    Mengubah jenis image Kumpulan Node dari Docker ke containerd
    Gambar 2. Mengubah jenis image Node Pool dari Docker ke containerd (klik untuk memperbesar)
  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 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 melalui private.googleapis.com IP Virtual, atau Kontrol Layanan VPC, dan mengirim traffic melalui restricted.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 atau GCS sync exited with 1: gcloud storage cp gs://<bucket-name>/env_var.json.cfg /home/airflow/gcs/env_var.json.tmp. Jika Anda melihat error ini, periksa apakah file yang disebutkan dalam pesan error yang masih ada di bucket lingkungan.

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

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

    2. 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 melihat OOMKilling 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

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, 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 yang menggunakan query_id dan Parameter report_id. GoogleDisplayVideo360ReportSensor yang tidak digunakan lagi sensor hanya memerlukan report_id.
  • GoogleDisplayVideo360DownloadReportV2Operator sekarang memerlukan query_id dan report_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 &gt; Aplikasi pihak ketiga yang tidak dikonfigurasi &gt; 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).

Waktu penguraian DAG Airflow dan grafik ukuran tas DAG yang menunjukkan serangkaian interval yang tidak berkelanjutan
Gambar 3. Waktu penguraian DAG yang tidak berkelanjutan dan grafik ukuran tas DAG (klik untuk memperbesar)

Solusi: Sebaiknya pertahankan total waktu penguraian DAG kurang dari 5 menit. Untuk mengurangi DAG waktu penguraian, ikuti panduan penulisan DAG.

Langkah selanjutnya