Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)
בדף הזה מפורט מידע לפתרון בעיות שעלולות לקרות במהלך עדכון או שדרוג של סביבות Managed Service for Apache Airflow.
מידע על פתרון בעיות שקשורות ליצירת סביבות מופיע במאמר פתרון בעיות ביצירת סביבות.
כשמעדכנים סביבות של Managed Airflow, רוב הבעיות נובעות מהסיבות הבאות:
- בעיות בהרשאות של חשבון שירות
- בעיות בתלות ב-PyPI
- גודל מסד הנתונים של Airflow
אין הרשאות מספיקות לעדכן או לשדרג סביבה
אם ל-Managed Airflow אין מספיק הרשאות כדי לעדכן או לשדרג סביבה, מוצגת הודעת השגיאה הבאה:
ERROR: (gcloud.composer.environments.update) PERMISSION_DENIED: The caller does not have permission
פתרון: מקצים תפקידים גם לחשבון שלכם וגם לחשבון השירות של הסביבה, כמו שמתואר במאמר בנושא בקרת גישה.
לחשבון השירות של הסביבה אין הרשאות מספיקות
כשיוצרים סביבת Managed Airflow, מציינים חשבון שירות שמבצע את רוב הפעולות בסביבה. אם לחשבון השירות הזה אין מספיק הרשאות לפעולה המבוקשת, המערכת של Managed Airflow מציגה שגיאה:
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
}
].
הפתרון: מקצים תפקידים לחשבון Google ולחשבון השירות של הסביבה, כמו שמתואר במאמר בנושא בקרת גישה.
מסד הנתונים של Airflow גדול מדי ואי אפשר לבצע את הפעולה
יכול להיות שפעולת שדרוג לא תצליח כי גודל מסד הנתונים של Airflow גדול מדי.
אם גודל מסד הנתונים של Airflow גדול מ-16GB, Managed Airflow מציג את השגיאה הבאה:
Airflow database uses more than 16 GB. Please clean the database before upgrading.
הפתרון: מבצעים ניקוי של מסד הנתונים של Airflow, כמו שמתואר במאמר ניקוי מסד הנתונים של Airflow.
שדרוג לגרסה חדשה של Managed Airflow נכשל בגלל קונפליקטים בחבילת PyPI
כשמשדרגים סביבה עם חבילות PyPI מותאמות אישית שהותקנו, יכול להיות שתיתקלו בשגיאות שקשורות לקונפליקטים בחבילות PyPI. יכול להיות שהסיבה לכך היא שתמונת Managed Service for Apache Airflow החדשה מכילה גרסאות עדכניות יותר של חבילות שהותקנו מראש. זה יכול לגרום לקונפליקטים של תלות בחבילות PyPI שהתקנתם בסביבה שלכם.
הפתרון:
- כדי לקבל מידע מפורט על התנגשויות בין חבילות, מריצים בדיקת שדרוג.
- הגבלות הגרסה של חבילות PyPI מותאמות אישית שהותקנו. לדוגמה, במקום לציין גרסה בתור
==1.0.1, מציינים אותה בתור>=1.0.1. - לקבלת מידע נוסף על שינוי דרישות הגרסה כדי לפתור בעיות של תלות סותרת, אפשר לעיין במסמכי העזרה של pip.
אי אפשר לשדרג סביבה לגרסה שעדיין נתמכת
אפשר לשדרג סביבות Managed Airflow רק לכמה מהגרסאות האחרונות והקודמות.
יש מגבלות שונות על הגרסה כשיוצרים סביבות חדשות וכשמשדרגים סביבות קיימות. יכול להיות שהגרסה של Managed Airflow שתבחרו כשתיצרו סביבה חדשה לא תהיה זמינה כשמשדרגים סביבות קיימות.
אפשר לבצע את פעולת השדרוג באמצעות Google Cloud CLI, API או Terraform. במסוף Google Cloud , רק הגרסאות האחרונות זמינות כאפשרויות שדרוג.
הסביבה לא תקינה (בדיקת הפעילות נכשלה)
אפשר לשדרג סביבה רק אם הסטטוס שלה מוגדר כ'תקין'.
אחת הסיבות הנפוצות ביותר למצב לא תקין היא כשמרכיבי הסביבה מתקרבים למגבלות המשאבים שהוגדרו ופועלים כל הזמן בעומס מקסימלי. חלק מרכיבי הסביבה לא יכולים לדווח על הסטטוס שלהם, ולכן ה-DAG של בדיקת הפעילות מדווח על סטטוס הסביבה כלא תקין.
כדי לפתור את הבעיה הזו, מומלץ להגדיל את מגבלות המשאבים. למרות שאנחנו ממליצים לשמור על הסביבה כך שלא תתקרב למגבלות בכל זמן, אפשר גם לעשות זאת רק בתקופה שבה הסביבה משודרגת.
חוסר קישוריות ל-DNS עלול לגרום לבעיות במהלך שדרוגים או עדכונים
בעיות בקישוריות יכולות לגרום לרישומים ביומן כמו אלה:
WARNING - Compute Engine Metadata server unavailable attempt 1 of 5. Reason: [Errno -3] Temporary failure in name resolution Error
בדרך כלל זה אומר שאין נתיב ל-DNS, לכן צריך לוודא שאפשר לתרגם את שם ה-DNS metadata.google.internal לכתובת IP מתוך רשתות של Cluster, Pods ו-Services. בודקים אם האפשרות 'גישה פרטית ל-Google' מופעלת ב-VPC (בפרויקט המארח או בפרויקט השירות) שבו נוצר הסביבה.