Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Gen 1 Lama)
Halaman ini memberikan informasi pemecahan masalah untuk masalah yang mungkin Anda temui saat memperbarui atau mengupgrade lingkungan Managed Service untuk Apache Airflow.
Untuk informasi pemecahan masalah terkait pembuatan lingkungan, lihat Pemecahan masalah pembuatan lingkungan.
Saat lingkungan Managed Airflow diperbarui, sebagian besar masalah terjadi karena alasan berikut:
- Masalah izin akun layanan
- Masalah dependensi PyPI
- Ukuran database Airflow
Izin tidak memadai untuk memperbarui atau mengupgrade lingkungan
Jika Managed Airflow tidak dapat memperbarui atau mengupgrade lingkungan karena izin tidak memadai, sistem akan menampilkan pesan error berikut:
ERROR: (gcloud.composer.environments.update) PERMISSION_DENIED: The caller does not have permission
Solusi: Tetapkan peran ke akun Anda dan ke akun layanan lingkungan Anda seperti yang dijelaskan di Kontrol akses.
Akun layanan lingkungan memiliki izin yang tidak memadai
Saat membuat lingkungan Managed Airflow, Anda menentukan akun layanan yang melakukan sebagian besar operasi lingkungan. Jika akun layanan ini tidak memiliki izin yang cukup untuk operasi yang diminta, Managed Airflow akan menampilkan error:
UPDATE operation on this environment failed 3 minutes ago with the
following error message:
Composer Backend timed out. Currently running tasks are [stage:
CP_COMPOSER_AGENT_RUNNING
description: "No agent response published."
response_timestamp {
seconds: 1618203503
nanos: 291000000
}
].
Solusi: Tetapkan peran ke Akun Google Anda dan ke akun layanan lingkungan Anda seperti yang dijelaskan di Kontrol akses.
Ukuran database Airflow terlalu besar untuk melakukan operasi
Operasi upgrade mungkin tidak berhasil karena ukuran database Airflow terlalu besar agar operasi upgrade berhasil.
Jika ukuran database Airflow lebih dari 16 GB, Managed Airflow akan menampilkan error berikut:
Airflow database uses more than 16 GB. Please clean the database before upgrading.
Solusi: Lakukan pembersihan database Airflow, seperti yang dijelaskan di Membersihkan database Airflow.
Upgrade ke versi Managed Airflow baru gagal karena konflik paket PyPI
Saat mengupgrade lingkungan dengan paket PyPI kustom yang terinstal, Anda mungkin mengalami error terkait konflik paket PyPI. Hal ini mungkin terjadi karena image Managed Service untuk Apache Airflow yang baru berisi versi paket yang telah diinstal sebelumnya. Hal ini dapat menyebabkan konflik dependensi dengan paket PyPI yang Anda instal di lingkungan Anda.
Solusi:
- Untuk mendapatkan informasi mendetail tentang konflik paket, jalankan an pemeriksaan upgrade.
- Longgarkan batasan versi untuk paket PyPI kustom yang terinstal. Misalnya,
alih-alih menentukan versi sebagai
==1.0.1, tentukan sebagai>=1.0.1. - Untuk mengetahui informasi selengkapnya tentang cara mengubah persyaratan versi untuk mengatasi dependensi yang bertentangan, lihat dokumentasi pip.
Tidak mungkin mengupgrade lingkungan ke versi yang masih didukung
Lingkungan Managed Airflow hanya dapat diupgrade ke beberapa versi terbaru dan sebelumnya.
Batasan versi untuk membuat lingkungan baru dan mengupgrade lingkungan yang ada berbeda. Versi Managed Airflow yang Anda pilih saat membuat lingkungan baru mungkin tidak tersedia saat mengupgrade lingkungan yang ada.
Anda dapat melakukan operasi upgrade menggunakan Google Cloud CLI, API, atau Terraform. Di Google Cloud konsol, hanya versi terbaru yang tersedia sebagai pilihan upgrade.
Lingkungan tidak sehat (pemeriksaan aktivitas gagal)
Lingkungan hanya dapat diupgrade jika statusnya dilaporkan sebagai sehat.
Salah satu penyebab paling umum status tidak sehat adalah saat komponen lingkungan mendekati batas resource yang dikonfigurasi dan terus beroperasi pada beban maksimum. Karena beberapa komponen lingkungan tidak dapat melaporkan statusnya, DAG pemeriksaan aktivitas melaporkan status lingkungan sebagai tidak sehat.
Untuk mengatasi masalah ini, sebaiknya tingkatkan batas resource. Meskipun sebaiknya jaga agar lingkungan Anda tidak mendekati batas setiap saat, Anda juga dapat melakukannya hanya untuk periode saat lingkungan Anda diupgrade.
Kurangnya konektivitas ke DNS dapat menyebabkan masalah saat melakukan upgrade atau pembaruan
Masalah konektivitas tersebut dapat menghasilkan entri log seperti ini:
WARNING - Compute Engine Metadata server unavailable attempt 1 of 5. Reason: [Errno -3] Temporary failure in name resolution Error
Biasanya, hal ini berarti tidak ada rute ke DNS, jadi pastikan nama DNS metadata.google.internal dapat di-resolve ke alamat IP dari dalam jaringan Cluster, Pod, dan Layanan. Periksa apakah Anda telah mengaktifkan Akses Google Pribadi dalam VPC (di project host atau layanan) tempat lingkungan Anda dibuat.
CPU pemicu melebihi batas 1 vCPU
Managed Airflow versi 2.4.4 dan yang lebih baru memperkenalkan strategi alokasi resource pemicu yang berbeda untuk meningkatkan penskalaan performa. Jika Anda mengalami error terkait CPU pemicu saat melakukan pembaruan lingkungan, artinya pemicu Anda saat ini dikonfigurasi untuk menggunakan lebih dari 1 vCPU per pemicu.
Solusi:
- Sesuaikan alokasi resource pemicu agar memenuhi batas 1 vCPU.
- Jika Anda mengantisipasi masalah dengan DAG yang menggunakan operator yang dapat ditangguhkan, sebaiknya tingkatkan juga jumlah pemicu.
Memeriksa peringatan migrasi yang gagal
Saat mengupgrade Airflow ke versi yang lebih baru, terkadang batasan baru diterapkan ke database Airflow. Jika batasan ini tidak dapat diterapkan, Airflow akan membuat tabel baru untuk menyimpan baris yang batasannya tidak dapat diterapkan. UI Airflow menampilkan pesan peringatan hingga tabel data yang dipindahkan diganti namanya atau dihapus.
Solusi:
Anda dapat menggunakan dua DAG berikut untuk memeriksa data yang dipindahkan dan mengganti nama tabel.
DAG list_moved_tables_after_upgrade_dag mencantumkan baris yang dipindahkan dari setiap tabel yang batasannya tidak dapat diterapkan. Periksa data dan tentukan apakah Anda ingin menyimpannya. Untuk menyimpannya, Anda harus memperbaiki data secara manual di database Airflow. Misalnya, dengan menambahkan kembali baris dengan data yang benar.
Jika Anda tidak memerlukan data atau jika Anda sudah memperbaikinya, Anda dapat menjalankan DAG rename_moved_tables_after_upgrade_dag. DAG ini mengganti nama tabel yang dipindahkan.
Tabel dan datanya tidak dihapus, sehingga Anda dapat meninjau data tersebut nanti.
Operasi lingkungan tetap dalam status gagal tanpa batas waktu
Lingkungan Managed Airflow (Gen 2) mengandalkan topik dan langganan Pub/Sub untuk berkomunikasi dengan resource yang berada di project tenant lingkungan Anda selama operasi lingkungan.
Jika Pub/Sub API dinonaktifkan di project Anda, atau jika topik atau langganan lingkungan dihapus, operasi lingkungan mungkin gagal dan tetap dalam status gagal tanpa batas waktu. Lingkungan tersebut akan rusak tanpa dapat diperbaiki.