Masalah umum

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

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

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

Rentang alamat non-RFC 1918 didukung sebagian untuk Pod dan Layanan

Cloud Composer bergantung pada GKE untuk memberikan dukungan bagi alamat non-RFC 1918 untuk Pod dan Layanan. 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

Label lingkungan yang ditambahkan selama update tidak sepenuhnya diterapkan

Saat Anda memperbarui label lingkungan, label tersebut tidak diterapkan ke VM Compute Engine di cluster lingkungan. Sebagai solusi, Anda dapat menerapkan label secara manual.

Tidak dapat membuat lingkungan Cloud Composer dengan batasan kebijakan organisasi/compute.disableSerialPortLogging yang diterapkan

Pembuatan lingkungan Cloud Composer gagal jika kebijakan organisasi constraints/compute.disableSerialPortLogging diterapkan pada project target.

Diagnosis

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

Buka menu GKE di konsolGoogle Cloud . Buka menu GKE

Kemudian, pilih cluster yang baru 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 dapat selalu dinonaktifkan di tingkat project meskipun kebijakan tersebut diaktifkan di resource induk (organisasi atau folder). Lihat halaman Menyesuaikan kebijakan untuk batasan boolean untuk mengetahui detail selengkapnya.

  2. Menggunakan filter pengecualian

    Menggunakan filter pengecualian untuk log port serial. mencapai tujuan yang sama dengan menonaktifkan kebijakan org, karena akan ada log konsol serial di Logging. Untuk mengetahui detail selengkapnya, lihat halaman Filter pengecualian.

Penggunaan Deployment Manager untuk mengelola Google Cloud resource yang dilindungi oleh Kontrol Layanan VPC

Cloud Composer 1 dan Cloud Composer 2 versi 2.0.x menggunakan Deployment Manager untuk membuat komponen lingkungan Cloud Composer.

Pada Desember 2020, Anda mungkin telah menerima informasi bahwa Anda perlu melakukan konfigurasi Kontrol Layanan VPC tambahan agar dapat menggunakan Deployment Manager untuk mengelola resource yang dilindungi oleh Kontrol Layanan VPC.

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

Deployment Manager menampilkan informasi tentang fitur yang tidak didukung

Anda mungkin melihat peringatan berikut di tab Deployment Manager:

The deployment uses actions, which are an unsupported feature. We recommend
that you avoid using actions.

Untuk deployment Deployment Manager yang dimiliki oleh Cloud Composer, Anda dapat mengabaikan peringatan ini.

Tidak dapat menghapus lingkungan setelah clusternya dihapus

Masalah ini berlaku untuk Cloud Composer 1 dan Cloud Composer 2 versi 2.0.x.

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

 Got error "" during CP_DEPLOYMENT_DELETING [Rerunning Task. ]

Untuk menghapus lingkungan saat cluster-nya sudah dihapus:

  1. Di konsol Google Cloud , buka halaman Deployment Manager.

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

    1. Pilih deployment.

    2. Klik Hapus.

    3. Pilih opsi Hapus 2 deployment dan semua resource yang dibuat olehnya, seperti VM, load balancer, dan disk, lalu klik Hapus semua.

    Operasi penghapusan gagal, tetapi resource yang tersisa dihapus.

  4. Hapus deployment menggunakan salah satu opsi berikut:

    • Di Google Cloud console, pilih kembali kedua deployment. Klik Hapus, 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.

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 pemrosesan tugas dan DAG Airflow.

Kami berupaya meningkatkan kualitas layanan Cloud Composer untuk menghapus peringatan ini dari log Airflow.

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

Di project dengan Kontrol Layanan VPC diaktifkan, 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 menambahkan 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 atau upgrade lingkungan Cloud Composer gagal jika kebijakan compute.vmExternalIpAccess dinonaktifkan

Masalah ini berlaku untuk lingkungan Cloud Composer 1 dan Cloud Composer 2.

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 mengetahui 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 yang dijalankan gagal dengan error Unable to read remote log.... Masalah ini terjadi karena file DAG disinkronkan antara bucket lingkungan, worker Airflow, dan penjadwal Airflow di lingkungan Anda. Jika scheduler mendapatkan file DAG dan menjadwalkannya untuk dieksekusi oleh worker, dan jika worker belum memiliki file DAG, maka eksekusi tugas akan gagal.

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

Pengumuman tentang penghapusan dukungan untuk API Beta yang tidak digunakan lagi dari versi GKE

Cloud Composer mengelola cluster GKE pokok yang dimiliki Cloud Composer. Kecuali jika Anda secara eksplisit menggunakan API tersebut di DAG dan kode Anda, Anda dapat mengabaikan pengumuman tentang penghentian penggunaan GKE API. Cloud Composer akan menangani migrasi apa pun, jika diperlukan.

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

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

Worker atau scheduler 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 error Transport endpoint is not connected di log Airflow.

Solusi:

UI Airflow terkadang tidak memuat ulang plugin setelah diubah

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

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 lingkungan di-scale up, 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. Sebelum 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 di node tempat komponen Airflow tidak ada tidak memengaruhi lingkungan Anda.

Jika masalah ini berlanjut dalam waktu yang 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>"

Bagian ini berisi informasi tentang keputusan yang dibuat oleh Cluster Autoscaler: perluas noDecisionStatus untuk melihat alasan mengapa cluster tidak dapat di-scale up atau di-scale down.

Error 504 saat mengakses UI Airflow

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

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

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

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

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

Error 502 saat mengakses UI Airflow

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

  • Masalah komunikasi sementara. Coba akses UI Airflow nanti.

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

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

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

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

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

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

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

Seperti yang ditunjukkan dalam CVE-2021-45229, layar "Trigger DAG with config" rentan terhadap serangan XSS melalui argumen kueri origin.

Rekomendasi: Upgrade ke Cloud Composer versi terbaru yang mendukung Airflow 2.2.5.

Pekerja memerlukan lebih banyak memori daripada di versi Airflow sebelumnya

Gejala:

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

  • Masalah ini dapat mencegah upgrade lingkungan.

Penyebab:

  • Jika Anda menggunakan nilai kustom untuk opsi konfigurasi Airflow [celery]worker_concurrency dan setelan memori kustom untuk pekerja Airflow, Anda mungkin mengalami masalah ini saat penggunaan resource mendekati batas.
  • Persyaratan memori pekerja Airflow di Airflow 2.6.3 dengan Python 3.11 10% lebih tinggi dibandingkan dengan pekerja di versi sebelumnya.
  • Persyaratan memori worker Airflow di Airflow 2.3 dan versi yang lebih baru 30% lebih tinggi dibandingkan dengan worker di Airflow 2.2 atau Airflow 2.1.

Solusi:

  • Hapus penggantian untuk worker_concurrency, sehingga 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.

Pemicuan DAG melalui jaringan pribadi menggunakan fungsi Cloud Run

Pemicuan DAG dengan fungsi Cloud Run melalui jaringan pribadi dengan penggunaan Konektor VPC tidak didukung oleh Cloud Composer.

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

Folder kosong di Scheduler dan Workers

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

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

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

Dukungan untuk Kerberos

Cloud Composer tidak mendukung konfigurasi Kerberos Airflow.

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

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

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

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

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

Dukungan untuk Operator Google Campaign Manager 360

Operator Google Campaign Manager di Cloud Composer versi yang lebih lama dari 2.1.13 didasarkan pada Campaign Manager 360 API v3.5 yang 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 di Cloud Composer versi sebelum 2.1.13 didasarkan pada Display & Video 360 API v1.1 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 operator baru.

  • GoogleDisplayVideo360CreateReportOperator tidak digunakan lagi. Sebagai gantinya, gunakan GoogleDisplayVideo360CreateQueryOperator. Operator ini menampilkan query_id, bukan report_id.
  • GoogleDisplayVideo360RunReportOperator 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 kini 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 tersimpan)

UI Airflow di Airflow versi 2.0.x hingga 2.5.x rentan terhadap CVE-2023-29247.

Jika Anda menggunakan Cloud Composer versi yang lebih lama dari 2.4.2 dan mencurigai bahwa lingkungan Anda mungkin rentan terhadap eksploitasi, baca deskripsi dan kemungkinan solusi berikut.

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 beserta izin dan peran IAM yang diperlukan.

Solusi:

  • Verifikasi izin dan peran IAM di project Anda, termasuk peran Cloud Composer yang ditetapkan kepada pengguna perorangan. 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 yang lebih terperinci ke UI Airflow). Pastikan hanya pengguna yang disetujui yang dapat mengakses UI Airflow dan semua pengguna baru terdaftar dengan peran yang sesuai.

  • Pertimbangkan penguatan tambahan dengan Kontrol Layanan VPC.

DAG pemantauan Airflow lingkungan Composer 2 Cloud Composer tidak dibuat ulang setelah dihapus

DAG pemantauan Airflow tidak dibuat ulang secara otomatis jika dihapus oleh pengguna atau dipindahkan dari bucket di lingkungan dengan composer-2.1.4-airflow-2.4.3.

Solusi:

  • Masalah ini telah diperbaiki di versi yang lebih baru seperti composer-2.4.2-airflow-2.5.3. Pendekatan yang disarankan adalah mengupgrade lingkungan Anda ke versi yang lebih baru.
  • Solusi alternatif atau sementara untuk upgrade lingkungan adalah dengan menyalin DAG airflow_monitoring dari lingkungan lain dengan versi yang sama.

Penyimpanan Cloud SQL tidak dapat dikurangi

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

Ukuran disk Cloud SQL tidak dapat diperkecil.

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

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

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

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

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

Akses diblokir: Error Otorisasi

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

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

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

Loop login saat mengakses UI Airflow

Masalah ini mungkin disebabkan oleh:

Instance tugas yang berhasil di masa lalu ditandai sebagai 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 dipicu oleh operasi upgrade atau update lingkungan, atau oleh pemeliharaan GKE.

Catatan: masalah itu sendiri tidak menunjukkan adanya masalah di lingkungan dan tidak menyebabkan kegagalan aktual 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

Masalah ini hanya berlaku untuk Cloud Composer 2 versi 2.10.2 dan yang lebih lama.

Dalam kasus yang sangat jarang terjadi, lambatnya komunikasi ke server Metadata Compute Engine dapat menyebabkan komponen Airflow tidak berfungsi secara optimal. Misalnya, penjadwal Airflow mungkin dimulai ulang, tugas Airflow mungkin perlu dicoba lagi, atau waktu mulai tugas mungkin lebih lama.

Gejala:

Error berikut muncul di log komponen Airflow (seperti scheduler, worker, atau server web Airflow):

Authentication failed using Compute Engine authentication due to unavailable metadata server

Compute Engine Metadata server unavailable on attempt 1 of 3. Reason: timed out
...
Compute Engine Metadata server unavailable on attempt 2 of 3. Reason: timed out
...
Compute Engine Metadata server unavailable on attempt 3 of 3. Reason: timed out

Solusi:

  • (Direkomendasikan) Upgrade lingkungan Anda ke versi Cloud Composer yang lebih baru. Masalah ini telah diperbaiki mulai dari Cloud Composer versi 2.11.0.

  • Sebagai solusi sementara, Anda dapat menetapkan variabel lingkungan berikut: GCE_METADATA_TIMEOUT=30. Pastikan untuk menghapus setelan ini saat Anda siap mengupgrade lingkungan.

Folder /data tidak tersedia di server web Airflow

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

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

Solusi:

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

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

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

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

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

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

Log komponen Cloud Composer tidak ada di Cloud Logging

Ada masalah pada komponen lingkungan yang bertanggung jawab untuk mengupload log komponen Airflow ke Cloud Logging. Bug ini terkadang menyebabkan log tingkat Cloud Composer mungkin tidak ada untuk komponen Airflow. Log yang sama masih tersedia di tingkat komponen Kubernetes.

Terjadinya masalah: sangat jarang, sporadis

Penyebab:

Perilaku yang salah dari komponen Cloud Composer yang bertanggung jawab untuk mengupload log ke Cloud Logging.

Solusi:

  • Upgrade lingkungan Anda ke Cloud Composer versi 2.10.0 atau yang lebih baru.

  • Pada versi Cloud Composer sebelumnya, solusi sementara jika Anda mengalami situasi ini adalah memulai operasi Cloud Composer yang memulai ulang komponen yang lognya tidak ada.

Mengalihkan cluster lingkungan ke GKE Enterprise Edition tidak didukung

Catatan ini berlaku untuk Cloud Composer 1 dan Cloud Composer 2.

Cluster GKE lingkungan Cloud Composer dibuat dalam GKE Standard Edition.

Mulai Desember 2024, layanan Cloud Composer tidak mendukung pembuatan lingkungan Cloud Composer dengan cluster di Edisi Enterprise.

Lingkungan Cloud Composer tidak diuji dengan GKE Enterprise Edition dan memiliki model penagihan yang berbeda.

Komunikasi lebih lanjut terkait GKE Standard Edition versus edisi Enterprise akan dilakukan pada Kuartal 2 2025.

Komponen Airflow mengalami masalah saat berkomunikasi dengan bagian lain dari konfigurasi Cloud Composer

Dalam beberapa kasus, karena resolusi DNS gagal, komponen Airflow mungkin mengalami masalah saat berkomunikasi dengan komponen Cloud Composer lainnya atau endpoint layanan di luar lingkungan Cloud Composer.

Gejala:

Error berikut mungkin muncul di log komponen Airflow (seperti scheduler, worker, atau server web Airflow):

google.api_core.exceptions.ServiceUnavailable: 503 DNS resolution failed ...
... Timeout while contacting DNS servers

atau

Could not access *.googleapis.com: HTTPSConnectionPool(host='www.googleapis.com', port=443): Max retries exceeded with url: / (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7c5ef5adba90>: Failed to resolve 'www.googleapis.com' ([Errno -3] Temporary failure in name resolution)"))

atau

redis.exceptions.ConnectionError: Error -3 connecting to
airflow-redis-service.composer-system.svc.cluster.local:6379.
Temporary failure in name resolution.

Kemungkinan solusi:

  • Upgrade ke Cloud Composer 2.9.11 atau

  • Tetapkan variabel lingkungan berikut: GCE_METADATA_HOST=169.254.169.254.

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

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

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

Anda dapat melakukan hal berikut untuk mengatasi masalah ini:

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

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

Peringatan tentang Anggaran Disrupsi Pod untuk cluster lingkungan

Anda dapat melihat peringatan berikut di UI GKE untuk cluster lingkungan Cloud Composer:

GKE can't perform maintenance because the Pod Disruption Budget allows
for 0 Pod evictions. Update the Pod Disruption Budget.
A StatefulSet is configured with a Pod Disruption Budget but without readiness
probes, so the Pod Disruption Budget isn't as effective in gauging application
readiness. Add one or more readiness probes.

Peringatan ini tidak dapat dihilangkan. Kami berupaya menghentikan pembuatan peringatan ini.

Kemungkinan solusi:

  • Abaikan peringatan ini hingga masalahnya diperbaiki.

Nilai kolom dalam koneksi Airflow tidak dapat dihapus

Penyebab:

Antarmuka pengguna Apache Airflow memiliki batasan yang tidak memungkinkan pembaruan kolom koneksi ke nilai kosong. Saat Anda mencoba melakukannya, sistem akan kembali ke setelan yang disimpan sebelumnya.

Kemungkinan solusi:

Meskipun Apache Airflow versi 2.10.4 menyertakan perbaikan permanen, ada solusi sementara untuk pengguna yang menggunakan versi sebelumnya. Hal ini melibatkan penghapusan koneksi, lalu membuatnya kembali, khususnya dengan mengosongkan kolom yang wajib diisi. Antarmuka command line adalah pendekatan yang direkomendasikan untuk menghapus koneksi:

gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
connections delete -- \
CONNECTION_ID

Setelah menghapus koneksi, buat ulang menggunakan UI Airflow, pastikan kolom yang ingin Anda biarkan kosong memang dibiarkan kosong. Anda juga dapat membuat koneksi dengan menjalankan perintah connections add Airflow CLI dengan Google Cloud CLI.

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

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

Solusi yang mungkin:

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

Langkah berikutnya