Managed Airflow (דור 3) | Managed Airflow (דור 2) | Managed Airflow (דור 1 מדור קודם)
בדף הזה מוסבר איך לשדרג את הסביבה לגרסה חדשה של Managed Airflow או Airflow.
מידע על פעולות שדרוג
אפשר לשדרג את גרסת Managed Airflow, את גרסת Airflow או את שתיהן בו-זמנית.
כשמשנים את הגרסה של Airflow או של Managed Airflow שבה משתמשים בסביבה:
Managed Airflow פורס מחדש את רכיבי הסביבה באמצעות גרסאות חדשות של תמונות Managed Airflow.
אם בסביבה שלכם היו שינויים בהגדרות של Airflow לפני השדרוג, כמו חבילות PyPI בהתאמה אישית או שינויים באפשרויות ההגדרה של Airflow, הם יחולו גם ב-Managed Airflow.
Managed Airflow מעדכן את החיבור של Airflow
airflow_dbכך שיפנה למסד הנתונים החדש של Cloud SQL.
השדרוג לא משנה את האופן שבו מתחברים למשאבים בסביבה, כמו כתובת ה-URL של הקטגוריה של הסביבה או שרת האינטרנט של Airflow.
מגבלות על פעולות שדרוג וחזרה לגרסה קודמת
לפעולות השדרוג יש את המגבלות הבאות:
גרסאות Managed Airflow מושקות בהדרגה במשך כמה ימים בכל האזורים שנתמכים על ידי Managed Airflow. יכול להיות שהגרסה העדכנית של גרסה בתהליך השקה עדיין לא זמינה באזור שלכם.
אי אפשר לשדרג לאחור לגרסה קודמת של Managed Airflow או Airflow.
במסוף Google Cloud אפשר לשדרג רק לגרסאות הנתמכות האחרונות של Managed Airflow (דור 2).
ב-Google Cloud CLI, ב-API או ב-Terraform, אתם יכולים לשדרג סביבה לגרסאות הנתמכות האחרונות, לשלוש גרסאות קודמות של Managed Airflow (דור 2), לגרסת התיקון האחרונה של הגרסה המשנית הקודמת ולגרסאות עם ציר זמן מורחב לשדרוג. אי אפשר לשדרג לגרסאות אחרות של Managed Airflow (דור 2), גם אם הן עדיין נתמכות ואפשר להשתמש בהן כדי ליצור סביבה חדשה.
דוגמה לאפשרויות השדרוג ב-Google Cloud CLI, ב-API וב-Terraform:
- הגרסאות העדכניות:
composer-2.11.5-airflow-* - שלוש גרסאות קודמות של Managed Airflow (דור 2):
composer-2.11.4-airflow-*,composer-2.11.3-airflow-*,composer-2.11.2-airflow-*. - התיקון האחרון של הגרסה המשנית הקודמת של Managed Airflow (דור 2):
composer-2.10.2-airflow-* - גרסאות Managed Airflow (דור 2) עם לוח זמנים מורחב לשדרוג:
composer-2.10.2-airflow-*,composer-2.10.1-ariflow-*,composer-2.9.7-airflow-*וגרסאות אחרות עם לוח זמנים מורחב לשדרוג.
- הגרסאות העדכניות:
הגרסה שמשדרגים אליה צריכה לתמוך בגרסת Python הנוכחית של הסביבה.
המגבלות על המכסות של Compute Engine API יכולות למנוע שדרוגים. במסוף Google Cloud , נכנסים לדף IAM and Admin > Quotas and System Limits ובודקים אם לא חרגתם מהמכסה של Compute Engine API למעבד (CPU). אם אתם מתקרבים לסף המכסה, בקשו להגדיל את המכסה לפני שתמשיכו בפעולת השדרוג.
אי אפשר לשדרג את הסביבה אם מסד הנתונים של Airflow מכיל יותר מ-16GB של נתונים. במהלך השדרוג, אם מסד הנתונים של Airflow גדול מ-16GB, תוצג אזהרה. במקרה כזה, מבצעים תחזוקה של מסד הנתונים כדי להקטין את הגודל שלו.
אם אתם משתמשים במנגנון XCom כדי להעביר קבצים, חשוב להשתמש בו בהתאם להנחיות של Airflow. העברת קבצים גדולים או מספר גדול של קבצים באמצעות XCom משפיעה על הביצועים של מסד הנתונים של Airflow, ויכולה לגרום לכשלים בטעינת קובצי snapshot או בשדרוג הסביבה. כדאי להשתמש בחלופות כמו Cloud Storage כדי להעביר כמויות גדולות של נתונים.
לפני שמתחילים
מומלץ ליצור קובץ Snapshot חדש של הסביבה כדי שתוכלו ליצור אותה מחדש במקרה הצורך.
בחשבון שלכם צריך להיות תפקיד שיכול להפעיל פעולות של שדרוג סביבה. בנוסף, לחשבון השירות של הסביבה צריך להיות תפקיד עם מספיק הרשאות כדי לבצע פעולות שדרוג. למידע נוסף על בקרת גישה
יכול להיות שתראו רשומות של מטא-נתונים של Compute Engine לאשכולות GKE ששייכים לסביבות בפרויקט. במהלך היצירה והשדרוג של אשכולות GKE, מערכת Google Kubernetes Engine מוסיפה באופן אוטומטי רשומות של מטא-נתונים ברמת הפרויקט (
google_compute_project_metadata) כדי לעקוב אחרי השימוש בטווחים משניים של כתובות IP. אל תשנו או תסירו את הרשומות האלה. Google Kubernetes Engine מנהל אותם באופן אוטומטי.
מוודאים שהסביבה מעודכנת
ב-Managed Airflow מוצגות אזהרות כשתאריך סיום התמיכה המלאה בתמונת הסביבה מתקרב. אתם יכולים להשתמש באזהרות האלה כדי לוודא שהסביבה שלכם תמיד נתמכת.
Managed Airflow עוקב אחרי גרסת האימג' של Managed Airflow שעליה מבוססת הסביבה שלכם. כשהסביבה מתקרבת לתאריך סיום התמיכה, מופיעה אזהרה ברשימת הסביבות ובדף Environment details.
כדי לבדוק אם הסביבה שלכם מעודכנת:
המסוף
במסוף Google Cloud , נכנסים לדף Environments.
ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details נפתח.
עוברים לכרטיסייה Environment configuration.
בשדה גרסת התמונה, מוצגת אחת מההודעות הבאות:
הגרסה העדכנית ביותר שזמינה. תמונת הסביבה נתמכת באופן מלא.
יש גרסה חדשה. יש תמיכה מלאה בתמונת הסביבה שלכם, ואתם יכולים לשדרג אותה לגרסה עדכנית יותר.
התמיכה בגרסת התמונה הזו תסתיים בעוד… תמונת הסביבה שלכם מתקרבת לסוף תקופת זכאות לתמיכה המלאה.
הגרסה הזו לא נתמכת החל מ… הסביבה שלכם עברה את תקופת הזכאות לתמיכה מלאה.
gcloud
הפונקציונליות הזו לא זמינה דרך Google Cloud CLI. במקום זאת, אתם יכולים לראות את השדרוגים המוצעים, שכוללים גרסאות חדשות שזמינות.
API
הפונקציונליות הזו לא זמינה דרך API. במקום זאת, אתם יכולים לראות את השדרוגים המוצעים, שכוללים גרסאות חדשות שזמינות.
הצגת השדרוגים המוצעים
ב-Managed Airflow יש רשימה של גרסאות Managed Airflow שאפשר לשדרג אליהן את הסביבה.
כדי לראות את הגרסאות של Managed Airflow שמומלץ לשדרג אליהן:
המסוף
במסוף Google Cloud , נכנסים לדף Environments.
ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details נפתח.
עוברים לכרטיסייה Environment configuration ולוחצים על Upgrade Image Version.
כדי לראות את רשימת הגרסאות המוצעות, לוחצים על התפריט הנפתח 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 שמותקנות בסביבה שלכם לבין חבילות שמותקנות מראש בקובץ האימג' החדש של Managed Airflow.
אם הבדיקה מצליחה, סימן שאין התנגשויות בין יחסי התלות של חבילת PyPI בגרסה הנוכחית לבין אלה שבגרסה שצוינה. עם זאת, יכול להיות שפעולת השדרוג עדיין תיכשל מסיבות אחרות.
המסוף
כדי להריץ בדיקת שדרוג בסביבה שלכם:
במסוף Google Cloud , נכנסים לדף Environments.
ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details נפתח.
בכרטיסייה Environment configuration, מאתרים את הרשומה Image version ולוחצים על Upgrade.
בתיבת הדו-שיח Environment version upgrade, ברשימה הנפתחת New version בוחרים את הגרסה של Managed Airflow שרוצים לשדרג אליה.
בקטע PyPI packages compatibility, לוחצים על Check for conflicts.
מחכים עד שהבדיקה תסתיים. אם יש התנגשויות בין יחסי תלות של חבילות PyPI, הודעות השגיאה שמוצגות מכילות פרטים על החבילות ועל גרסאות החבילות שמתנגשות.
gcloud
כדי להריץ בדיקת שדרוג לסביבה, מריצים את הפקודה environments check-upgrade עם גרסת האימג' של Managed Airflow שאליה רוצים לשדרג:
gcloud composer environments check-upgrade \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version IMAGE_VERSION
מחליפים את:
ENVIRONMENT_NAMEבשם הסביבה.-
LOCATIONבאזור שבו נמצאת הסביבה. -
IMAGE_VERSIONבגרסת התמונה של Managed Airflow שרוצים לשדרג אליה, בפורמטcomposer-a.b.c-airflow-x.y.z. אפשר גם להשתמש בכינויי גרסאות.
דוגמה:
gcloud composer environments check-upgrade example-environment \
--location us-central1 \
--image-version composer-2.17.16-airflow-2.11.1
פלט לדוגמה:
Waiting for [projects/example-project/locations/us-central1/environments/
example-environment] to be checked for PyPI package conflicts when upgrading
to composer-2.17.16-airflow-2.11.1. 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": "IMAGE_VERSION"
}
מחליפים את IMAGE_VERSION בגרסת התמונה של Managed Airflow שרוצים לשדרג אליה, בפורמט composer-a.b.c-airflow-x.y.z.
אפשר גם להשתמש בכינויי גרסאות.
בדיקה אם יש התנגשויות עם Managed Airflow (דור 3)
אי אפשר להעביר את הסביבה מ-Managed Airflow (דור 2) ל-Managed Airflow (דור 3) במקום, אבל אפשר לבדוק אם יש בעיות תאימות באמצעות בדיקת שדרוג. מומלץ לעשות את זה לפני המעבר ל-Managed Airflow (דור 3).
כדי לבדוק את התאימות ל-Managed Airflow (דור 3), מבצעים בדיקת שדרוג רגילה של סביבת Managed Airflow (דור 2) ומציינים גרסה של Managed Airflow (דור 3) כיעד.
לכל התנגשות שמדווחת יכולים להיות הסוגים הבאים:
BLOCKINGמדווח על התנגשויות בין רכיבים לא תואמים של הגדרות סביבה שלא נתמכים ב-Managed Airflow (דור 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_IMAGE_VERSION
מחליפים את:
ENVIRONMENT_NAMEבשם הסביבה.-
LOCATIONבאזור שבו נמצאת הסביבה. COMPOSER_3_IMAGE_VERSIONעם גרסת האימג' של Managed Airflow (דור 3), בפורמטcomposer-3-airflow-x.y.z-build.t. אפשר גם להשתמש בכינויי גרסאות של Managed Airflow (דור 3).
דוגמה:
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_IMAGE_VERSION"
}
מחליפים את COMPOSER_3_IMAGE_VERSION בגרסת התמונה של Managed Airflow (דור 3), בפורמט composer-3-airflow-x.y.z-build.t. אתם יכולים גם להשתמש בכינויי גרסאות של Managed Airflow (דור 3).
שדרוג הסביבה
כדי לשדרג את הסביבה לגרסה חדשה יותר של Managed Airflow או Airflow:
המסוף
במסוף Google Cloud , נכנסים לדף Environments.
ברשימת הסביבות, לוחצים על שם הסביבה. הדף Environment details נפתח.
עוברים לכרטיסייה Environment configuration.
מאתרים את הפריט גרסת תמונה ולוחצים על שדרוג.
בתפריט הנפתח Image version, בוחרים את גרסת Managed Airflow שרוצים לשדרג אליה.
לוחצים על שדרוג.
gcloud
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--image-version IMAGE_VERSION
מחליפים את:
ENVIRONMENT_NAMEבשם הסביבה.-
LOCATIONבאזור שבו נמצאת הסביבה. -
IMAGE_VERSIONבגרסת התמונה של Managed Airflow שרוצים לשדרג אליה, בפורמטcomposer-a.b.c-airflow-x.y.z. אפשר גם להשתמש בכינויי גרסאות.
לדוגמה:
gcloud composer environments update \
example-environment \
--location us-central1 \
--image-version composer-2.17.16-airflow-2.11.1
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-2.17.16-airflow-2.11.1"
}
}
}
Terraform
השדה image_version בבלוק config.software_config קובע את גרסת האימג' של Managed Airflow בסביבה. בשדה הזה, מציינים גרסת אימג' חדשה של Managed Airflow בפורמט composer-a.b.c-airflow-x.y.z.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "IMAGE_VERSION"
}
}
}
מחליפים את:
ENVIRONMENT_NAMEבשם הסביבה.-
LOCATIONבאזור שבו נמצאת הסביבה. -
IMAGE_VERSIONבגרסת התמונה של Managed Airflow שרוצים לשדרג אליה, בפורמטcomposer-a.b.c-airflow-x.y.z. אפשר גם להשתמש בכל כינויי הגרסאות.
דוגמה:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-2.17.16-airflow-2.11.1"
}
}
}