ההליך הזה מתייחס לשדרוג מ-Apigee Hybrid גרסה 1.9.x ל-Apigee Hybrid גרסה 1.10.5, ומגרסאות קודמות של Hybrid 1.10.x לגרסה 1.10.5.
אפשר להשתמש באותן פעולות לשדרוג גרסאות משניות (לדוגמה, מגרסה 1.9 לגרסה 1.10) ולשדרוג גרסאות של תיקוני אבטחה (לדוגמה, מגרסה 1.10.0 לגרסה 1.10.5).
סקירה כללית של שדרוג לגרסה 1.10.5
ההליכים לשדרוג Apigee hybrid מאורגנים בקטעים הבאים:
דרישות מוקדמות
ההוראות לשדרוג מניחות שיש לכם את Apigee Hybrid בגרסה 1.9.x ואתם רוצים לשדרג לגרסה 1.10.5. אם אתם מעדכנים מגרסה קודמת, כדאי לעיין בהוראות לשדרוג Apigee Hybrid לגרסה 1.9.
הכנה לשדרוג לגרסה 1.10
גיבוי של ההתקנה ההיברידית (מומלץ)
- בהוראות האלה נעשה שימוש במשתנה הסביבה APIGEECTL_HOME עבור הספרייה במערכת הקבצים שבה התקנתם את
apigeectl. אם צריך, משנים את הספרייה לספרייהapigeectlומגדירים את המשתנה באמצעות הפקודה הבאה:Linux
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOMEMac OS
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOMEWindows
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME% - יוצרים עותק גיבוי של ספריית
$APIGEECTL_HOME/בגרסה 1.9. לדוגמה:tar -czvf $APIGEECTL_HOME/../apigeectl-v1.9-backup.tar.gz $APIGEECTL_HOME - מגבים את מסד הנתונים של Cassandra לפי ההוראות במאמר בנושא גיבוי ושחזור של Cassandra.
שדרוג גרסת Kubernetes
בודקים את גרסת פלטפורמת Kubernetes, ואם צריך, משדרגים את פלטפורמת Kubernetes לגרסה שנתמכת על ידי hybrid 1.9 ו-hybrid 1.10. אם אתם צריכים עזרה, תוכלו לעיין במסמכי התיעוד של הפלטפורמה.
התקנת זמן הריצה של Apigee Hybrid 1.10.5
- חשוב לוודא שאתם נמצאים בספריית הבסיס של ההיברידי (הספרייה הראשית שבה נמצא קובץ ההפעלה
apigeectl):cd $APIGEECTL_HOME/..
-
מורידים את חבילת הגרסה למערכת ההפעלה באמצעות הפקודה הבאה. חשוב לבחור את הפלטפורמה שלכם בטבלה הבאה:
Linux
Linux 64 bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_linux_64.tar.gz
Mac OS
Mac 64 bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_mac_64.tar.gz
Windows
Windows 64 bit:
curl -LO ^ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_windows_64.zip
- משנים את השם של ספריית
apigeectl/הנוכחית לשם של ספריית גיבוי. לדוגמה:Linux
mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/
Mac OS
mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/
Windows
rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.9
-
מחלצים את תוכן קובץ ה-gzip שהורד לספריית הבסיס ההיברידית. ספריית הבסיס ההיברידית היא הספרייה שבה נמצאת הספרייה
apigeectl-v1.9ששמה שונה:Linux
tar xvzf filename.tar.gz -C ./
Mac OS
tar xvzf filename.tar.gz -C ./
Windows
tar xvzf filename.zip -C ./
-
כברירת מחדל, התוכן של קובץ ה-tar מורחב לספרייה עם הגרסה והפלטפורמה בשם שלה. לדוגמה:
./apigeectl_1.10.5-xxxxxxx_linux_64. משנים את שם הספרייה ל-apigeectlבאמצעות הפקודה הבאה:Linux
mv apigeectl_1.10.5-xxxxxxx_linux_64 apigeectl
Mac OS
mv apigeectl_1.10.5-xxxxxxx_mac_64 apigeectl
Windows
rename apigeectl_1.10.5-xxxxxxx_windows_64 apigeectl
-
עוברים לספרייה
apigeectl:cd ./apigeectl
הספרייה הזו היא ספריית הבית
apigeectl. זה המקום שבו נמצאת הפקודה להפעלהapigeectl. - בהוראות האלה נעשה שימוש במשתנה הסביבה
$APIGEECTL_HOMEעבור הספרייה במערכת הקבצים שבה מותקן כלי השירותapigeectl. אם צריך, משנים את הספרייה לספרייהapigeectlומגדירים את המשתנה באמצעות הפקודה הבאה:Linux
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
Mac OS
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
Windows
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
- כדי לוודא את הגרסה של
apigeectl, מריצים את הפקודהversion:./apigeectl version
Version: 1.10.5
- יוצרים ספרייה בשם
hybrid-base-directory/hybrid-filesומעבירים אליה את הקובץ. בספרייהhybrid-filesנמצאים קובצי תצורה כמו קובץ ההחלפות, האישורים וחשבונות השירות. לדוגמה:Linux
mkdir $APIGEECTL_HOME/../hybrid-files
cd $APIGEECTL_HOME/../hybrid-files
Mac OS
mkdir $APIGEECTL_HOME/../hybrid-files
cd $APIGEECTL_HOME/../hybrid-files
Windows
mkdir %APIGEECTL_HOME%/../hybrid-files
cd %APIGEECTL_HOME%/../hybrid-files
- מריצים את הפקודה הבאה כדי לוודא שההקשר הנכון מוגדר ל-
kubectl. ההקשר הנוכחי צריך להיות מוגדר לאשכול שבו משדרגים את Apigee hybrid.kubectl config get-contexts | grep \*
- בספרייה
hybrid-files:-
מעדכנים את הקישורים הסמליים הבאים לכתובת
$APIGEECTL_HOME. הקישורים האלה מאפשרים להריץ את הפקודהapigeectlשהותקנה לאחרונה מתוך הספרייהhybrid-files:ln -nfs
$APIGEECTL_HOME/tools toolsln -nfs$APIGEECTL_HOME/config configln -nfs$APIGEECTL_HOME/templates templatesln -nfs$APIGEECTL_HOME/plugins plugins -
כדי לוודא שהקישורים הסמליים נוצרו בצורה נכונה, מריצים את הפקודה הבאה ומוודאים שנתיבי הקישורים מצביעים על המיקומים הנכונים:
ls -l | grep ^l
-
מעדכנים את הקישורים הסמליים הבאים לכתובת
- כדי שהתרשים
apigee-operatorישתמש בתג הנכון,1.10.5-hotfix.1, צריך לבצע את השינוי הבא בקובץ overrides.yaml:ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.10.5-hotfix.1" - מבצעים הפעלה ללא שינוי כדי לבדוק אם יש שגיאות:
${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=clientכאשר OVERRIDES_FILE הוא שם קובץ ההגדרות שלכם, למשל
./overrides/overrides.yaml. - אם אין שגיאות, מפעילים את hybrid 1.10.5:
$APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
- בודקים את סטטוס ההפעלה:
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
אם הפעולה בוצעה ללא שגיאות, הפלט ייראה כך:
All containers ready.kubectl describe apigeeds -n apigee
בפלט, מחפשים את
State: running. - כדי לבדוק אם יש שגיאות, מריצים הרצה יבשה של הפקודה
applyבאמצעות הדגל--dry-run:$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --dry-run=client
- אם אין שגיאות, מחילים את שינויי ברירת המחדל. בוחרים את ההוראות לסביבות ייצור או לסביבות שאינן סביבות ייצור, בהתאם להתקנה.
ייצור
בסביבות ייצור, צריך לשדרג כל רכיב היברידי בנפרד ולבדוק את הסטטוס של הרכיב המשודרג לפני שממשיכים לרכיב הבא.
- חשוב לוודא שאתם נמצאים בספרייה
hybrid-files. - מחילים את ההחלפות כדי לשדרג את Cassandra:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --datastore
- השלמת הבדיקה:
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
ממשיכים לשלב הבא רק כשהפודים מוכנים.
- מחילים את ההחלפות כדי לשדרג את רכיבי הטלמטריה ובודקים שהשדרוג הושלם:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --telemetry
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
- מפעילים את רכיבי Redis:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --redis
- מחילים את השינויים כדי לשדרג את הרכיבים ברמת הארגון (MART, Watcher ו-Apigee
Connect) ובודקים שהשדרוג הושלם:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --org
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
- מחילים את השינויים כדי לשדרג את הסביבות. יש שתי אפשרויות:
- סביבה אחרי סביבה: מחילים את השינויים על סביבה אחת בכל פעם ובודקים שהפעולה הושלמה. חוזרים על השלב הזה לכל סביבה:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --env ENV_NAME
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
כאשר ENV_NAME הוא שם הסביבה שמשדרגים.
- כל הסביבות בבת אחת: אפשר להחיל את השינויים על כל הסביבות בבת אחת ולבדוק שהפעולה הושלמה:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --all-envs
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
- סביבה אחרי סביבה: מחילים את השינויים על סביבה אחת בכל פעם ובודקים שהפעולה הושלמה. חוזרים על השלב הזה לכל סביבה:
- מחילים את ההחלפות כדי לשדרג את הרכיבים של
virtualhostsובודקים שהשדרוג הושלם:$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
Non-prod
ברוב הסביבות שאינן סביבות ייצור, הדגמה או ניסוי, אפשר להחיל את הביטולים על כל הרכיבים בבת אחת. אם הסביבה שלכם שהיא לא סביבת ייצור גדולה ומורכבת או שהיא דומה מאוד לסביבת ייצור, כדאי לפעול לפי ההוראות לשדרוג סביבות ייצור.
- חשוב לוודא שאתם נמצאים בספרייה
hybrid-files. $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE
- בודקים את הסטטוס:
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
- חשוב לוודא שאתם נמצאים בספרייה
החזרה למצב הקודם של שדרוג
כדי לחזור לשדרוג קודם:
- מנקים את המשימות שהושלמו במרחב השמות של זמן הריצה ההיברידי, כאשר NAMESPACE הוא מרחב השמות שצוין בקובץ ההחלפות, אם צוין מרחב שמות. אם לא, מרחב השמות שמוגדר כברירת מחדל הוא
apigee:kubectl delete job -n NAMESPACE \ $(kubectl get job -n NAMESPACE \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') - ניקוי משימות שהושלמו במרחב השמות
apigee-system:kubectl delete job -n apigee-system \ $(kubectl get job -n apigee-system \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') - משנים את המשתנה
APIGEECTL_HOMEכך שיצביע על הספרייה שמכילה את הגרסה הקודמת שלapigeectl. לדוגמה:export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
- בתיקיית הבסיס של ההתקנה שרוצים לחזור אליה, מריצים את הפקודה
apigeectl apply, בודקים את הסטטוס של ה-pods ואז מריצים את הפקודהapigeectl init. חשוב להשתמש בקובץ ההחלפות המקורי של הגרסה שרוצים לחזור אליה:- בספרייה hybrid-files, מריצים את
apigeectl apply:$APIGEECTL_HOME/apigeectl apply -f ORIGINAL_OVERRIDES_FILEORIGINAL_OVERRIDES_FILE הוא הנתיב היחסי ושם הקובץ של קובץ ההחלפות להתקנה ההיברידית של הגרסה הקודמת, לדוגמה,
./overrides/overrides1.9.yaml. - בודקים את הסטטוס של ה-Pods:
kubectl -n NAMESPACE get pods
כאשר NAMESPACE הוא מרחב השמות של Apigee Hybrid.
- בודקים את הסטטוס של
apigeeds:kubectl describe apigeeds -n apigee
הפלט אמור להיראות כך:
Status: Cassandra Data Replication: Cassandra Pod Ips: 10.8.2.204 Cassandra Ready Replicas: 1 Components: Cassandra: Last Successfully Released Version: Revision: v1-f8aa9a82b9f69613 Version: v1 Replicas: Available: 1 Ready: 1 Total: 1 Updated: 1 State: running Scaling: In Progress: false Operation: Requested Replicas: 0 State: runningממשיכים לשלב הבא רק אם ה-pod
apigeedsפועל. - מריצים את הפקודה הבאה כדי לרשום את הערכים החדשים של מספר העותקים של מעבד ההודעות אחרי השדרוג. אם הערכים האלה לא תואמים לערכים שהגדרתם בעבר, צריך לשנות את הערכים בקובץ הביטולים כך שיתאימו להגדרה הקודמת.
apigeectl apply -f ORIGINAL_OVERRIDES_FILE --dry-run=client --print-yaml --env ENV_NAME 2>/dev/null |grep "runtime:" -A 25 -B 1| grep "autoScaler" -A 2
הפלט אמור להיראות כך:
autoScaler: minReplicas: 2 maxReplicas: 10 - מריצים את
apigeectl init:$APIGEECTL_HOME/apigeectl init -f ORIGINAL_OVERRIDES_FILE
- בספרייה hybrid-files, מריצים את