בדף הזה מוסבר איך מעבירים ארגון Apigee hybrid מאשכול Kubernetes אחד לאשכול אחר. הנה כמה מקרים שבהם יכול להיות שתצטרכו להעביר ארגון לאשכול אחר:
- למרכז הנתונים שמארח את האשכול הקיים אין יותר קיבולת, או שהוא יוצא משימוש.
- האשכול מריץ תשתית ישנה או גרסה ישנה של Kubernetes, ואתם רוצים להעביר אותו לאשכול עם תשתית חדשה יותר.
- אתם רוצים להעביר ארגונים מאשכולות של כמה ארגונים לאשכולות נפרדים.
חשוב לזכור שיש סיכונים ומגבלות בהעברת ארגון לאשכול היברידי אחר. לפני שמבצעים העברה, חשוב לקרוא את הפרטים בקטע מגבלות.
מגבלות
המגבלות הבאות חלות כשמעבירים ארגון היברידי לאשכול Kubernetes אחר:
- קיים סיכון לאובדן נתונים כשמעבירים נתונים של הארגון לאשכול Kubernetes חדש. לפני שמבצעים העברה של ארגון, צריך לגבות את הנתונים של כל הארגונים באשכול Kubernetes באמצעות ההוראות לגיבוי היברידי.
- גודל הנתונים המקסימלי שנתמך להעברת ארגון הוא 5GB בכל מרחבי המפתחות של הארגון, לא כולל מטמון ומכסה.
- נתונים במטמון לא יועברו. במבנה היברידי, המטמון נבנה מחדש.
- נתוני המכסה לא יועברו. הנתונים של המכסה מתאפסים ב-Hybrid.
- אפשר להעביר ארגונים רק לאשכול Kubernetes שלא מכיל פריסה היברידית קיימת. אין תמיכה בהעברה לאשכול עם פריסה היברידית קיימת.
- אפשר להעביר את הארגון שעובר מיגרציה רק לאשכול חדש עם פריסה באזור יחיד. אחרי שהפריסה באזור היחיד תפעל, תוכלו לפעול לפי תהליך הרחבת האזור שמתואר במאמר פריסה בכמה אזורים כדי להרחיב לאזורים אחרים.
- אוסף Cassandra צריך לפעול בצורה תקינה בכל האזורים.
העברת ארגון
כדי להעביר ארגון היברידי מאשכול Kubernetes אחד לאשכול אחר, פועלים לפי ההוראות הבאות:
- אם הגיבויים עדיין לא הופעלו, מפעילים אותם באשכול Kubernetes שמכיל את הארגון ההיברידי שרוצים להעביר. מידע על גיבויים היברידיים זמין במאמר סקירה כללית על גיבוי של Cassandra.
- מריצים עבודת גיבוי היברידית באמצעות הפקודה הבאה:
kubectl create job -n apigee --from=cronjob/apigee-cassandra-backup <backup job name>
<backup job name>יכול להיות כל שם קונטיינר תקין. - אחרי שהגיבוי מסתיים, צריך לפעול לפי ההוראות בקטעים הבאים של מעקב אחרי גיבויים כדי לוודא שהגיבוי הושלם בהצלחה:
- 'בדיקת הסטטוס של משימת הגיבוי'
- 'בדיקת יומני הגיבוי'
- אחרי שמוודאים שהגיבוי הצליח, רושמים את מספר הזהות בסוף יומן הגיבוי. לדוגמה, יומן גיבוי תקין צריך להכיל שורה כמו זו:
חשוב לשמור את המספר הרב-ספרתי שמופיע בסוף השורה, כי תצטרכו אותו בהמשך.INFO: completed upload for 20230207004250
- מעבירים את ההקשר של Kubernetes לאשכול היעד של Kubernetes:
kubectl config use-context <destination cluster name> # <destination cluster name>
כאשר
<destination cluster name>הוא השם של אשכול היעד של Kubernetes. - משחזרים את נתוני הגיבוי לאשכול היעד של Kubernetes באמצעות ההוראות שבמאמר בנושא
שחזור באזור יחיד.
- משתמשים בקובץ overrides.yaml עבור הארגון שמועבר לפריסה היברידית ביעד.
- חשוב לזכור להגדיר את הערך
restore:snapshotTimestampלמספר הרב-ספרתי שמוצג ביומן הגיבוי בשלב 4. מידע נוסף זמין במאמר בנושא שחזור באזור יחיד.
- אחרי שהשחזור יסתיים, צריך למחוק את כל נתוני הארגון, מלבד הנתונים של הארגון שמועבר, מאשכול היעד של Kubernetes. קבצים של גיבוי היברידי מכילים את הנתונים של כל הארגונים, כולל כאלה שאולי לא תרצו להעביר. אחרי שמשחזרים את הפריסה ההיברידית של היעד, צריך להסיר את כל הנתונים הנוספים של הארגון שהועתקו לפריסה, באמצעות השלבים הבאים:
- מוודאים שההקשר הנוכחי הוא ההקשר הנכון עבור אשכול היעד של Kubernetes:
kubectl config current-context
- מריצים את הפקודה exec אל הפוד
apigee-cassandra-default-0:kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
- מריצים את הפקודה הבאה:
find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '*<migrated org name>*' -type d -maxdepth 2 -printf "%f\n"
הוראות למציאת
<migrated org name>מפורטות במאמר איך מוצאים את השם של הארגון שהועבר.מעתיקים את רשימת כל השמות שמוצגים בפלט. תצטרכו את הרשימה הזו בשלב 7. ו.
- יוצאים מ-
apigee-cassandra-default-0. - יוצרים פוד של לקוח לניפוי באגים ב-Cassandra לפי ההוראות במאמר
יצירת קונטיינר לקוח לניפוי באגים. עוברים לשלב הבא אחרי שמופיעה ההנחיה
cqlsh. - מריצים את הפקודות הבאות בהנחיה
cqlsh:-
desc keyspaces;
מוודאים שהפקודה הזו לא מחזירה שגיאות.
- לכל שם ברשימה שנוצרה בשלב 7. ג., מריצים את הפקודה הבאה:
drop keyspace <name>
-
- יוצאים מ-pod של לקוח לניפוי באגים ב-Cassandra.
- אחרי שמריצים את הפקודות
cqlsh, מריצים את הפקודות הבאות בכל ה-pods של Cassandra באשכול היעד של Kubernetes:kubectl exec -it -n apigee
-- /bin/bash find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '*<migrated org name>*' -type d -maxdepth 2
הוראות למציאת
<migrated org name>מפורטות במאמר איך מוצאים את השם של הארגון שהועבר.find /opt/apigee/data/apigee-cassandra/ -iname '*_hybrid' -not -iname '*
*' -type d -maxdepth 2 -exec rm -rf {} +
- יוצאים מ-Cassandra pod.
- מוודאים שההקשר הנוכחי הוא ההקשר הנכון עבור אשכול היעד של Kubernetes:
- מעבירים את ההקשר של Kubernetes לאשכול Kubernetes של המקור:
kubectl config use-context <source cluster name>
כאשר
<source cluster name>הוא השם של אשכול Kubernetes של המקור. - מוחקים את הארגון שהועבר מאשכול Kubernetes של המקור. חשוב להשתמש בקובץ
overrides.yamlשל הארגון בפקודת המחיקה:- מוודאים שההקשר הנוכחי הוא ההקשר הנכון עבור אשכול Kubernetes של המקור:
kubectl config current-context
apigeectl delete --settings virtualhost -f
apigeectl delete --all-envs -f <overrides.yaml>
apigeectl delete -f <overrides.yaml> --org
- מריצים את הפקודה exec ב-pod apigee-cassandra-default-0:
kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
- מריצים את הפקודה הבאה:
find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2 -printf "%f\n"
הוראות למציאת
<migrated org name>מפורטות במאמר איך מוצאים את השם של הארגון שהועבר.מעתיקים את רשימת כל השמות שמופיעים בפלט. תצטרכו את הרשימה הזו בשלב 9. j.
- יוצאים מ-
apigee-cassandra-default-0. - יוצרים פוד של לקוח לניפוי באגים ב-Cassandra לפי ההוראות במאמר
יצירת קונטיינר של לקוח לניפוי באגים. עוברים לשלב הבא
אחרי שמקבלים הנחיה
cqlsh. - מריצים את הפקודות הבאות בהנחיה
cqlsh:desc keyspaces;
מוודאים שהפקודה הזו לא מחזירה שגיאות.
- לכל שם ברשימה שנוצרה בשלב 10. ו.,
מריצים את הפקודה הבאה:
drop keyspace <name>;
- יוצאים מ-pod של לקוח לניפוי באגים ב-Cassandra. אחרי שמריצים את הפקודות
-
kubectl exec -it -n apigee <cassandra pod name> -- /bin/bash
-
find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2
הוראות למציאת
<migrated org name>מפורטות במאמר איך מוצאים את השם של הארגון שהועבר. -
find /opt/apigee/data/apigee-cassandra/ -iname '*<migrated org name>_hybrid' -type d -maxdepth 2 -exec rm -rf {} + - יוצאים מ-Cassandra pod.
cqlsh, מריצים את הפקודות הבאות בכל ה-pods של Cassandra באשכול Kubernetes של המקור: - מוודאים שההקשר הנוכחי הוא ההקשר הנכון עבור אשכול Kubernetes של המקור:
איך מקבלים את השם של הארגון שהועבר
כמה מהשלבים בתהליך שמתואר בסעיף הקודם דורשים את השם של הארגון שהועבר. כדי לקבל את שם הארגון שהועבר:
- מקבלים את שם הארגון מקובץ ה-overrides.yaml של הארגון. חשוב לבדוק את קובץ ה-overrides.yaml של הארגון שמבצעים לו מיגרציה.
- אם שם הארגון מכיל מקפים "-", צריך להחליף את כל המקפים "-" בקו תחתון "_".