Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)
בדף הזה מוסבר איך לשדרג את הסביבה לגרסה חדשה של Airflow.
מידע על פעולות שדרוג
ב-Managed Airflow (דור 3), לא מנהלים את הגרסה של Managed Airflow בסביבה:
- Managed Airflow משדרג אוטומטית את רכיבי התשתית של הסביבה. הרכיבים האלה קשורים לפונקציונליות של Managed Airflow, והם לא משנים את אופן הפעולה של Airflow או את אופן ההפעלה של DAGs ב-Airflow.
- ב-Managed Airflow, לא מתבצע שדרוג אוטומטי של גרסת Airflow וה-build, של רכיבי Airflow או של רכיבים שקשורים קשר הדוק לעומסי עבודה של Airflow. הם לא משתנים כששדרוג רכיבי התשתית מתבצע באופן אוטומטי.
- אפשר לשדרג באופן ידני לגרסה או ל-build חדשים של Airflow.
לדוגמה, אתם יכולים להשתמש באותה גרסה ובאותו build של Airflow במשך כמה חודשים, בלי לבצע שדרוגים, והסביבה שלכם עדיין מקבלת את העדכונים, התיקונים והשיפורים האחרונים של Managed Airflow ברכיבי התשתית של הסביבה. אם בהמשך תחליטו לעבור לגרסה או ל-build חדשים של Airflow, תצטרכו לשדרג את גרסת Airflow בסביבה שלכם.
מידע על שדרוג גרסת Airflow
הסביבה שלכם משנה את הגרסה או את ה-build של Airflow באופן הבא:
אתם קובעים את גרסת ה-Airflow (וה-build) של הסביבה. אפשר לבצע את פעולת השדרוג של גרסת Airflow כשבוחרים להעביר את הסביבה לגרסה אחרת של Airflow. לדוגמה, זה יכול לקרות אם הגרסה וה-build הנוכחיים של Airflow כבר לא נתמכים.
ב-Managed Airflow, רכיבי Airflow של הסביבה נפרסים מחדש באמצעות הגרסה וה-build שצוינו של Airflow.
אם בסביבה שלכם היו שינויים בהגדרות של Airflow לפני השדרוג, כמו חבילות PyPI מותאמות אישית או ביטולים של אפשרויות הגדרה של Airflow, השינויים האלה יחולו גם ב-Managed Airflow.
Managed Airflow מעדכן את החיבור של Airflow
airflow_dbכך שיצביע על מסד הנתונים החדש של Cloud SQL.
שינוי הגרסה של Airflow לא משנה את אופן ההתחברות למשאבים בסביבה, כמו כתובת ה-URL של דלי האחסון בסביבה או שרת האינטרנט של Airflow.
מידע על פעולות שדרוג אוטומטיות של התשתית
Managed Airflow מריץ מעת לעת פעולות שדרוג אוטומטיות של התשתית:
פעולות שדרוג אוטומטיות של התשתית מופעלות מעת לעת במהלך חלונות הזמן לתחזוקה שצוינו לסביבה.
אי אפשר להשבית שדרוגים אוטומטיים של התשתית ב-Managed Airflow (דור 3). אתם יכולים לשלוט בתקופות הזמן שבהן ניתן להפעיל שדרוגים אוטומטיים על ידי הגדרת חלונות זמן מותאמים אישית לתחזוקה בסביבה שלכם.
הפעולה הזו גלויה ביומנים של Google Cloud המסוף והסביבה, כמו כל פעולה ממושכת אחרת. בזמן שהפעולה פועלת, אי אפשר להפעיל פעולות אחרות ברמת הסביבה (אבל עדיין אפשר להפעיל Airflow DAG).
במקרים מסוימים, שדרוגים אוטומטיים של התשתית יכולים להפעיל מחדש רכיבים של Airflow. במהלך הפעלה מחדש כזו, תהליכי העבודה של Airflow מסתיימים בצורה מסודרת עם תקופת חסד של 24 שעות. אם יש לכם משימות שצריך יותר מ-24 שעות כדי להשלים אותן, כדאי להשתמש באופרטורים שאפשר לדחות. שדרוג עלול לגרום לתקופה קצרה של חוסר זמינות ברכיבי התשתית של הסביבה, כמו ניטור הסביבה.
מגבלות של פעולות שדרוג
לפעולות שדרוג יש את המגבלות הבאות:
ההשקה של גרסאות של Managed Airflow מתבצעת בהדרגה בכל האזורים שבהם נתמך Managed Airflow, במשך כמה ימים. יכול להיות שהגרסה האחרונה מגרסה בהפצה עדיין לא זמינה באזור שלכם.
אי אפשר לשדרג לאחור לגרסה או לבנייה קודמת של Airflow.
אי אפשר לשדרג את הסביבה אם מסד הנתונים של Airflow מכיל יותר מ-20GB של נתונים. במהלך שדרוג, מוצגת אזהרה אם גודל מסד הנתונים של Airflow גדול מ-20GB. במקרה כזה, צריך לבצע תחזוקה של מסד הנתונים כדי להקטין את הגודל שלו.
אם אתם משתמשים במנגנון XCom להעברת קבצים, חשוב לוודא שאתם משתמשים בו בהתאם להנחיות של Airflow. העברה של קבצים גדולים או של מספר גדול של קבצים באמצעות XCom משפיעה על הביצועים של מסד הנתונים של Airflow, ויכולה לגרום לכשלים בטעינת תמונות מצב או בשדרוג הסביבה. כדאי לשקול שימוש בחלופות כמו Cloud Storage להעברת נפחים גדולים של נתונים.
לפני שמתחילים
מומלץ ליצור תמונת מצב חדשה של הסביבה כדי שתוכלו ליצור אותה מחדש אם יהיה צורך בכך.
בחשבון שלכם צריך להיות תפקיד שיכול להפעיל פעולות שדרוג של סביבה. בנוסף, לחשבון השירות של הסביבה צריך להיות תפקיד עם הרשאות מספיקות לביצוע פעולות שדרוג. מידע נוסף זמין במאמר בקרת גישה.
בודקים שהסביבה מעודכנת
Managed Airflow מציג אזהרות כשמועד סיום התמיכה ב-Airflow בסביבה שלכם מתקרב. אפשר להשתמש באזהרות האלה כדי לוודא שהסביבה שלכם תמיד נתמכת.
Managed Airflow עוקב אחרי גרסת Airflow והגרסה שהסביבה מבוססת עליהן. כשמתקרבים לתאריך סיום התמיכה, מוצגת אזהרה ברשימת הסביבות ובדף פרטי הסביבה.
כדי לבדוק אם הסביבה שלכם עדכנית:
המסוף
במסוף Google Cloud , עוברים לדף Environments.
ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details ייפתח.
עוברים לכרטיסייה Environment configuration (הגדרת הסביבה).
בשדה גרסת התמונה מוצגת אחת מההודעות הבאות:
הגרסה הזמינה האחרונה. תמונת הסביבה נתמכת באופן מלא.
יש גרסה חדשה. יש תמיכה מלאה בתמונת הסביבה שלכם, ואפשר לשדרג אותה לגרסה מאוחרת יותר.
התמיכה בגרסת תמונה זו תסתיים בעוד... תמונת הסביבה שלך מתקרבת לסוף תקופת זכאות לתמיכה המלאה.
הגרסה הזו לא נתמכת החל מ... הסביבה שלכם נמצאת אחרי תקופת זכאות לתמיכה.
gcloud
האפשרות הזו לא זמינה דרך Google Cloud CLI. אפשר גם לראות את השדרוגים המוצעים, שכוללים גרסאות חדשות שזמינות.
API
הפונקציונליות הזו לא זמינה דרך API. אפשר גם לראות את השדרוגים המוצעים, שכוללים גרסאות חדשות שזמינות.
הצגת הצעות לשדרוגים
Managed Airflow מספק רשימה של גרסאות Airflow שאפשר לשדרג את הסביבה אליהן.
כדי לראות את הגרסאות של Managed Airflow שמוצעות לשדרוג:
המסוף
במסוף Google Cloud , עוברים לדף Environments.
ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details ייפתח.
עוברים לכרטיסייה Environment configuration ולוחצים על Upgrade Image Version.
ברשימת הגרסאות המוצעות, לוחצים על התפריט הנפתח גרסת התמונה של Managed Airflow.
gcloud
gcloud composer environments list-upgrades \
ENVIRONMENT_NAME \
--location LOCATION
מחליפים את:
-
ENVIRONMENT_NAMEבשם הסביבה. -
LOCATIONעם האזור שבו הסביבה ממוקמת.
דוגמה:
gcloud composer environments list-upgrades example-environment \
--location us-central1
API
אפשר לראות את הגרסאות הזמינות של מיקום מסוים. כדי לעשות את זה, צריך ליצור בקשת API מסוג imageVersions.list.
לדוגמה:
// GET https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/imageVersions
בדיקה אם יש התנגשויות בחבילות PyPI
אתם יכולים לבדוק אם חבילות PyPI שהותקנו בסביבה שלכם מתנגשות עם חבילות שהותקנו מראש בגרסה או ב-build החדשים של Airflow.
בדיקה מוצלחת פירושה שאין התנגשויות בתלות של חבילת PyPI בין הגרסה הנוכחית לבין הגרסה שצוינה. עם זאת, יכול להיות שפעולת השדרוג לא תצליח מסיבות אחרות.
המסוף
כדי להריץ בדיקת שדרוג בסביבה שלכם:
במסוף Google Cloud , עוברים לדף Environments.
ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details ייפתח.
עוברים לכרטיסייה Environment configuration (הגדרת הסביבה), מאתרים את הערך Image version (גרסת התמונה) ולוחצים על Upgrade (שדרוג).
בתיבת הדו-שיח שדרוג גרסת הסביבה, ברשימה הנפתחת גרסה חדשה, בוחרים גרסה או build של Airflow שרוצים לשדרג אליהם.
בקטע PyPI packages compatibility (תאימות של חבילות PyPI), לוחצים על Check for conflicts (בדיקת התנגשויות).
מחכים עד שהבדיקה תסתיים. אם יש התנגשויות בין יחסי התלות של חבילות PyPI, הודעות השגיאה שמוצגות יכללו פרטים על החבילות וגרסאות החבילות שמתנגשות.
gcloud
כדי להריץ בדיקת שדרוג לסביבה שלכם, מריצים את הפקודה environments check-upgrade עם גרסת Airflow או build שרוצים לשדרג אליהם.
gcloud composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--airflow-version VERSION
מחליפים את:
-
ENVIRONMENT_NAMEבשם הסביבה. -
LOCATIONעם האזור שבו הסביבה ממוקמת. -
VERSIONעם הגרסה וה-build החדשים של Airflow שרוצים לשדרג אליהם, בפורמטairflow-x.y.z-build.t. אפשר להשתמש בכל כינויי הגרסאות.
דוגמה:
gcloud composer environments check-upgrade example-environment \
--location us-central1 \
--airflow-version airflow-2.11.1-build.9
פלט לדוגמה:
Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-3-airflow-2.11.1-build.9. Operation [projects/example-project/locations/
us-central1/operations/04d0e8b2-...]...done.
...
Response:
'@type': type.googleapis.com/
google.cloud.orchestration.airflow.service.v1.CheckUpgradeResponse
buildLogUri: ...
containsPypiModulesConflict: CONFLICT
pypiConflictBuildLogExtract: |-
The Cloud Build image build failed: Build failed; check build logs for
details. Full log can be found at ...
Error details: tensorboard 2.2.2 has requirement
setuptools>=41.0.0, but you have setuptools 40.3.0.
אפשר גם להריץ בדיקת שדרוג באופן אסינכרוני. משתמשים בארגומנט --async כדי לבצע קריאה אסינכרונית, ואז בודקים את התוצאה באמצעות הפקודה gcloud composer operations describe.
API
יוצרים בקשת API של environments.checkUpgrade.
מציינים את גרסת התמונה בשדה imageVersion:
{
"imageVersion": "VERSION"
}
מחליפים את VERSION בגרסה החדשה שרוצים לשדרג אליה, בפורמט composer-3-airflow-x.y.z-build.t.
בדיקת התנגשויות עם Managed Airflow (דור 3)
Managed Airflow (דור 3) היא הגרסה העיקרית האחרונה של Managed Airflow. אתם יכולים לבדוק אם אפשר לשדרג סביבת Managed Airflow (דור 2) ל-Managed Airflow (דור 3) באמצעות בדיקת שדרוג. התיאור הבא רלוונטי לסביבות Managed Airflow (דור 2).
אי אפשר להעביר את הסביבה מ-Managed Airflow (דור 2) אל Managed Airflow (דור 3) במקום, אבל אפשר לבדוק אם יש בעיות תאימות באמצעות בדיקת שדרוג. מומלץ לעשות את זה לפני המעבר ל-Managed Airflow (דור 3).
כדי לבדוק תאימות ל-Managed Airflow (דור 3), מבצעים בדיקת שדרוג רגילה של סביבת Managed Airflow (דור 2) ומציינים גרסה של Managed Airflow (דור 3) כיעד.
כל קונפליקט שמדווח יכול להיות מהסוגים הבאים:
BLOCKINGconflicts report incompatible environment configuration elements that aren't supported in Managed Airflow (Gen 3). מומלץ לטפל בקונפליקטים האלה לפני שמתחילים בהעברה ל-Managed Airflow (דור 3).NON_BLOCKINGדוח הקונפליקטים מציג רכיבי הגדרות סביבה ששונים ב-Managed Airflow (דור 3) ועלולים לגרום להתנהגות לא צפויה. לדוגמה, שינויים בערכי ברירת המחדל, כמו חלונות ברירת המחדל לתחזוקה, מדווחים כהתנגשויות לא חוסמות. מומלץ לבדוק אם העימותים האלה עלולים לגרום לבעיות לפני שמתחילים בתהליך ההעברה.במסגרת הבדיקה הזו מדווחים גם על התנגשויות בחבילות PyPI. הם מדווחים בנפרד מהתנגשויות ההגדרות, באותו אופן כמו בבדיקת תאימות רגילה של חבילת PyPI.
המסוף
כדי לבדוק תאימות ל-Managed Airflow (דור 3), משתמשים ב-CLI של gcloud או ב-Cloud Composer API. Google Cloud במסוף אפשר לבדוק רק תאימות של חבילות PyPI.
gcloud
כדי לבדוק תאימות ל-Managed Airflow (דור 3), מריצים את הפקודה
environments check-upgrade
ומציינים גרסה של Managed Airflow (דור 3) כיעד.
gcloud composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version COMPOSER_3_VERSION
מחליפים את:
-
ENVIRONMENT_NAMEבשם הסביבה. -
LOCATIONעם האזור שבו הסביבה ממוקמת. -
COMPOSER_3_VERSIONעם הגרסה וה-build של Airflow שאליהם רוצים לשדרג, בפורמטairflow-x.y.z-build.t. אפשר להשתמש בכל כינויי הגרסאות.
דוגמה:
gcloud composer environments check-upgrade example-environment \
--location us-central1 \
--image-version composer-3-airflow-2
דוגמאות להודעות על התנגשות:
...
- message: Error validating property [core]unit_test_mode. Overriding [core]
unit_test_mode is not permitted.
type: BLOCKING
- message: Environment variables [GOOGLE_CLOUD_PROJECT] may not be overridden.
type: BLOCKING
- message: You have to specify Worker CPUs to be 0.5, 1.0 or multiples of 2.0.
type: BLOCKING
- message: The environment uses a default maintenance window, which is
different in Composer 2 and Composer 3. Unless set to a custom value, the
maintenance window will be changed to a new default after the upgrade.
type: NON_BLOCKING
...
אפשר גם להריץ את הבדיקה הזו באופן אסינכרוני. משתמשים בארגומנט --async כדי לבצע קריאה אסינכרונית, ואז בודקים את התוצאה באמצעות הפקודה gcloud composer operations describe.
API
יוצרים בקשת API של environments.checkUpgrade.
מציינים את גרסת התמונה בשדה imageVersion:
{
"imageVersion": "COMPOSER_3_VERSION"
}
מחליפים את COMPOSER_3_VERSION בגרסה וב-build של Airflow שרוצים לשדרג אליהם, בפורמט airflow-x.y.z-build.t. אפשר להשתמש בכל כינויי הגרסאות.
שדרוג הסביבה
כדי לשדרג את הסביבה לגרסה או לבנייה חדשה של Airflow:
המסוף
במסוף Google Cloud , עוברים לדף Environments.
ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details ייפתח.
עוברים לכרטיסייה Environment configuration (הגדרת הסביבה).
מחפשים את הפריט גרסת תמונה ולוחצים על שדרוג.
בתפריט הנפתח Image version (גרסת התמונה), בוחרים גרסה או build של Airflow שרוצים לשדרג אליהם.
לוחצים על שדרוג.
gcloud
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--airflow-version VERSION
מחליפים את:
-
ENVIRONMENT_NAMEבשם הסביבה. -
LOCATIONעם האזור שבו הסביבה ממוקמת. -
VERSIONעם הגרסה וה-build החדשים של Airflow שרוצים לשדרג אליהם, בפורמטairflow-x.y.z-build.t. אפשר גם להשתמש בכל הכינויים של הגרסאות.
לדוגמה:
gcloud composer environments update
example-environment \
--location us-central1 \
--airflow-version airflow-2.11.1-build.9
API
יוצרים בקשת API של
environments.patch.בבקשה הזו:
בפרמטר
updateMask, מציינים את המסכהconfig.softwareConfig.imageVersion.בגוף הבקשה, בשדה
imageVersion, מציינים את הגרסה החדשה שרוצים לשדרג אליה.
לדוגמה:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.imageVersion
{
"config": {
"softwareConfig": {
"imageVersion": "composer-3-airflow-2.11.1-build.9"
}
}
}
Terraform
השדה image_version בבלוק config.software_config שולט בגרסה וב-build של Airflow בסביבה שלכם. בשדה הזה, מציינים גרסה ו-build חדשים של Airflow.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "VERSION"
}
}
}
מחליפים את:
-
ENVIRONMENT_NAMEבשם הסביבה. -
LOCATIONעם האזור שבו הסביבה ממוקמת. הגרסה וה-build החדשים של Airflow שרוצים לשדרג אליהם, בפורמטairflow-x.y.z-build.t. אפשר גם להשתמש בכל הכינויים של הגרסאות.
דוגמה:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "airflow-2.11.1-build.9"
}
}
}