Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)
בדף הזה מפורטים שלבים לפתרון בעיות ומידע על בעיות נפוצות בשרת האינטרנט של Airflow.
שרת האינטרנט של Airflow הוא רכיב של Airflow שמספק ממשק משתמש לניהול של DAG ומשימות ב-Airflow. בדף הזה מתוארים שלבים לפתרון בעיות שונות בגישה לשרת האינטרנט של Airflow בסביבה שלכם, או אזהרות שקשורות לשרת האינטרנט שמופיעות ביומני Airflow.
אי אפשר לגשת לממשק המשתמש של Airflow כשמופעלים אמצעי בקרה לגישה לרשת
הסימפטום: אחרי שמגדירים את אמצעי בקרת הגישה לשרת האינטרנט, אי אפשר לגשת לממשק המשתמש של Airflow. בדרך כלל, קוד השגיאה שמוצג במצב הזה הוא 403.
מידע על הבעיה: ב-Managed Airflow יש תמיכה באמצעי בקרה לגישה לרשת של שרת אינטרנט, שמאפשרים לכם לציין טווחי כתובות IP שמורשים להתחבר לשרת האינטרנט.
בעיות בגישה לממשק המשתמש של Airflow בדרך כלל גורמות לשגיאה 403. כדי לבדוק אם השגיאה קשורה לאמצעי בקרה לגישה לרשת של שרת האינטרנט:
- ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details ייפתח.
- עוברים לכרטיסייה Environment configuration (הגדרת הסביבה).
- בודקים אם הפריט בקרת גישה לשרת אינטרנט מוגדר לערך לכל כתובות ה-IP יש גישה (ברירת מחדל).
- אם מוגדר ערך שונה מלכל כתובות ה-IP יש גישה (ברירת מחדל), בקרת הגישה לרשת מופעלת והגישה לממשק המשתמש של Airflow מוגבלת לטווחי כתובות IPv4 ו-IPv6 שצוינו. במקרה כזה, יכול להיות שהבעיה קשורה לבקרת הגישה לרשת של שרת האינטרנט.
ברוב המקרים, הבעיה נובעת מחוסר התאמה בין כתובת ה-IP שציינתם לבין כתובת ה-IP שבאמצעותה מתבצעת בפועל ההתחברות לממשק המשתמש של Airflow. כדי לפתור את הבעיה:
ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details ייפתח.
עוברים לכרטיסייה Environment configuration (הגדרת הסביבה).
מאתרים את הפריט בקרת גישה לשרת אינטרנט ולוחצים על Edit.
בתיבת הדו-שיח בקרת גישת רשת של שרת אינטרנט, בוחרים באפשרות Allow access from all IP addresses.
ניגשים לממשק המשתמש של Airflow כמה פעמים ומוודאים שהוא פועל ללא בעיות:
אם לא נתקלתם בבעיות, ממשיכים לשלב הבא.
אם נתקלתם בבעיה בשלב הזה, יכול להיות שהיא קשורה להגדרת הרשאות ה-IAM. מידע נוסף על הרשאות IAM ל-Managed Airflow זמין במאמר בקרת גישה.
בתיבת הדו-שיח בקרת גישת רשת של שרת אינטרנט, בוחרים באפשרות Allow access only from specific IP addresses.
מוסיפים את טווח כתובות ה-IP של
0.0.0.0/0, ואז ניגשים לממשק המשתמש של Airflow כמה פעמים ומוודאים שהוא פועל ללא בעיות:אם לא נתקלתם בבעיות, כתובת ה-IP שאתם מתחברים אליה היא כתובת IPv4.
אם נתקלים בבעיה בשלב הזה, המשמעות היא שכתובת ה-IP שמתחברים אליה היא כתובת IPv6.
מוחקים את טווח כתובות ה-IP
0.0.0.0/0ומוסיפים את טווח כתובות ה-IP::/0.אם לא נתקלתם בבעיות, סימן שכתובת ה-IP שאתם מתחברים איתה היא כתובת IPv6.
אם נתקלתם בבעיה בשלב הזה, המשמעות היא שכתובת ה-IP שאתם מתחברים אליה היא כתובת IPv4.
עכשיו אפשר לדעת אם הכתובת שזוהתה היא IPv4 או IPv6.
בהתאם לסוג הכתובת, מצמצמים את הטווחים
::/0או0.0.0.0/0לטווחים ספציפיים יותר, כדי לאמת את הטווח הרחב ביותר כשהגישה מפסיקה לפעול:אפשר להתחיל עם מסכה של רשת משנה רחבה (כמו
192.0.2.0/8) שכוללת את הכתובת שאתם מניחים שהיא כתובת ה-IP שלכם.כדי לגלות את כתובת ה-IP שלכם, אתם יכולים להשתמש בשירות של צד שלישי שמספק את כתובת ה-IP החיצונית שלכם כשאתם מבקרים בדף שלו. אפשר לחפש שירותים כאלה באמצעות שאילתת החיפוש 'מהי כתובת ה-IP שלי').
ערכי ההגדרה לא מוצגים בדף ההגדרה
חלק מפרמטרים של הגדרות Airflow מוסתרים בדף ההגדרות כדי למנוע גישה למידע רגיש. לדוגמה, פרטי הכניסה לגישה למסד הנתונים של Airflow לא מוצגים.
כדי להציג שדות מוסתרים, צריך לשנות את אפשרות ההגדרה הבאה של Airflow: מומלץ לבטל את השינויים אחרי שמקבלים את הערכים הנדרשים.
| קטע | מפתח | ערך | הערות |
|---|---|---|---|
webserver
|
expose_config
|
True
|
ערך ברירת המחדל הוא non-sensitive-only. מגדירים את הערך False כדי להסתיר את כל פרמטרי ההגדרה. |
ה-DAG גורם לקריסה של שרת האינטרנט של Airflow או להחזרת שגיאה מסוג '502 הזמן שהוקצב לשער חלף'
יש כמה סיבות אפשריות לכשלים בשרת האינטרנט. בודקים את היומנים של airflow-webserver ב-Cloud Logging כדי לזהות את הסיבה לשגיאה 502 gateway timeout.
חישוב עם עומס כבד
הקטע הזה רלוונטי רק ל-Managed Airflow (דור קודם 1).
בניגוד לצמתים של ה-worker והמתזמן, שאפשר להתאים אישית את סוג המכונה שלהם כדי להגדיל את קיבולת ה-CPU והזיכרון, שרת האינטרנט משתמש בסוג מכונה קבוע, מה שעלול להוביל לכשלים בניתוח של DAG אם החישוב בזמן הניתוח כבד מדי.
שימו לב שלשרת האינטרנט יש 2 vCPU וזיכרון בנפח 2GB.
ערך ברירת המחדל של core-dagbag_import_timeout הוא 30 שניות. ערך הזמן הקצוב לתפוגה הזה מגדיר את המגבלה העליונה של משך הזמן ש-Airflow מקדיש לטעינת מודול Python בתיקייה /dags.
הרשאות לא מתאימות
הקטע הזה רלוונטי רק ל-Managed Airflow (דור קודם 1).
שרת האינטרנט לא פועל באותו חשבון שירות כמו העובדים והמתזמן. לכן, יכול להיות שלעובדים ולמתזמן תהיה גישה למשאבים שמנוהלים על ידי המשתמשים, שלשרת האינטרנט אין גישה אליהם.
מומלץ להימנע מגישה למשאבים לא ציבוריים במהלך ניתוח ה-DAG. לפעמים אי אפשר להימנע מכך, ותצטרכו להעניק הרשאות לחשבון השירות של שרת האינטרנט. שם חשבון השירות נגזר מהדומיין של שרת האינטרנט. לדוגמה, אם הדומיין הוא example-tp.appspot.com, חשבון השירות הוא example-tp@appspot.gserviceaccount.com.
שגיאות ב-DAG
הקטע הזה רלוונטי רק ל-Managed Airflow (דור קודם 1).
שרת האינטרנט פועל ב-App Engine והוא נפרד מאשכול GKE של הסביבה שלכם. שרת האינטרנט מנתח את קובצי ההגדרה של ה-DAG, ואם יש שגיאות ב-DAG, יכולה להתרחש שגיאה 502 gateway timeout. Airflow פועל כרגיל ללא שרת אינטרנט פונקציונלי אם ה-DAG הבעייתי לא משבש תהליכים שפועלים ב-GKE.
במקרה כזה, אפשר להשתמש ב-gcloud composer environments run כדי לאחזר פרטים מהסביבה שלכם, וגם כפתרון עקיף אם שרת האינטרנט לא זמין.
במקרים אחרים, אפשר להריץ ניתוח של DAG ב-GKE ולחפש DAG שיוצר חריגים קריטיים ב-Python או שזמן ההמתנה שלו פג (ברירת המחדל היא 30 שניות). כדי לפתור בעיות, מתחברים למעטפת מרוחקת במאגר של Airflow worker ובודקים אם יש שגיאות תחביר. מידע נוסף זמין במאמר בנושא בדיקת DAG.