ניהול גיבויים ושחזור של סביבות Kubernetes הוא תהליך קריטי להבטחת המשכיות עסקית והגנה על מידע חשוב. Velero הוא כלי קוד פתוח מבית VMware שמאפשר גיבוי, שחזור והעברה של קלאסטרים של Kubernetes בצורה פשוטה ואוטומטית. במאמר זה נלמד כיצד להגדיר ולהשתמש ב-Velero כדי לגבות ולשחזר סביבות Kubernetes בצורה מאובטחת ויעילה.
התקנה והגדרת Velero
כדי להתחיל להשתמש ב-Velero, יש להתקין את הכלי ולחבר אותו לסביבות ה-Kubernetes שלכם. Velero תומך במגוון ספקי ענן לגיבוי ושחזור, כגון AWS, Azure, ו-Google Cloud Platform (GCP). במאמר זה נתרכז בדוגמה של גיבוי לסביבת AWS.
להתקנת Velero, יש לעקוב אחר ההוראות הבאות:
velero install \
--provider aws \
--bucket \
--secret-file ./credentials-velero \
--use-restic \
--backup-location-config region= \
--snapshot-location-config region=
בפקודה זו, אנחנו מגדירים את Velero להתחבר ל-S3 bucket ב-AWS, באמצעות המפתחות הסודיים שמסופקים בקובץ credentials-velero
. הוספנו גם תמיכה ב-Restic, כלי נוסף שמאפשר לגבות ולשחזר נפחים (Volumes) ב-Kubernetes.
גיבוי אוטומטי של קלאסטר Kubernetes
אחד היתרונות המרכזיים של Velero הוא היכולת לבצע גיבויים אוטומטיים של קלאסטרים. גיבויים אלו יכולים להתבצע על פי לוח זמנים מוגדר או כהתערבות ידנית. כל גיבוי כולל את כל המשאבים הקריטיים בקלאסטר, כגון Pods, Services, ConfigMaps, ו-Secrets.
לדוגמה, כדי ליצור גיבוי ידני של קלאסטר Kubernetes, ניתן להשתמש בפקודה הבאה:
velero backup create my-backup --include-namespaces my-namespace
בדוגמה זו, אנחנו יוצרים גיבוי בשם my-backup
שמכיל את כל המשאבים תחת ה-namespace my-namespace
. ניתן להרחיב את הפקודה כך שתכלול namespaces נוספים או לסנן משאבים על פי קריטריונים נוספים.
כדי להגדיר גיבויים אוטומטיים על פי לוח זמנים, ניתן להשתמש בפונקציית ה-Schedule של Velero:
velero schedule create daily-backup --schedule="0 2 * * *" --include-namespaces my-namespace
בפקודה זו, הגדרנו גיבוי אוטומטי שיתרחש כל יום בשעה 2:00 לפנות בוקר ויכלול את כל המשאבים ב-namespace my-namespace
.
שחזור סביבות Kubernetes עם Velero
שחזור סביבות Kubernetes באמצעות Velero הוא תהליך פשוט ויעיל. ניתן לשחזר את כל הקלאסטר מגיבוי קיים, או לבחור לשחזר רק חלקים מסוימים ממנו.
כדי לשחזר קלאסטר מגיבוי, יש להשתמש בפקודה הבאה:
velero restore create --from-backup my-backup
בפקודה זו, אנחנו יוצרים שחזור בשם my-backup
מכל המשאבים שנכללו בגיבוי. ניתן גם לסנן משאבים לשחזור לפי namespace, סוג משאב, או תגיות.
לדוגמה, אם אתם מעוניינים לשחזר רק את ה-Pods מה-namespace my-namespace
, תוכלו להשתמש בפקודה הבאה:
velero restore create --from-backup my-backup --include-resources pods --namespace my-namespace
שחזור זה יבטיח שה-Pods ישוחזרו במדויק כפי שהיו בזמן הגיבוי.
שימוש ב-Restic לגיבוי ושחזור נפחים
Velero תומך בשילוב עם Restic, כלי קוד פתוח נוסף שמאפשר לגבות ולשחזר נפחים (Volumes) ב-Kubernetes. שילוב זה הוא אידיאלי כאשר יש צורך לשמור על עקביות נתונים של יישומים המשתמשים באחסון מתמשך (Persistent Storage).
כדי להפעיל את תמיכת Restic בגיבויים, יש להוסיף את הדגל --use-restic
במהלך התקנת Velero, כפי שהודגם קודם לכן. לאחר מכן, ניתן להשתמש בפקודה הבאה כדי לכלול את הנפחים בגיבוי:
velero backup create my-backup --include-namespaces my-namespace --include-resources persistentvolumeclaims
בפקודה זו, אנחנו כוללים את כל ה-PVCs ב-namespace my-namespace
בגיבוי שלנו. ניתן לשחזר את הנפחים הללו יחד עם המשאבים האחרים באמצעות Velero.
מעבר וגיבוי בין קלאסטרים עם Velero
Velero מאפשר גם להעביר קלאסטרים שלמים בין סביבות שונות, כולל בין ספקי ענן שונים. זהו כלי רב עוצמה להבטחת המשכיות עסקית בעת מעבר של מערכות בין עננים או בין מרכזי נתונים.
כדי להעביר קלאסטר מ-AWS ל-GCP, למשל, יש לבצע את הצעדים הבאים:
1. גיבוי הקלאסטר ב-AWS:
velero backup create aws-backup --include-namespaces my-namespace
2. התקנת Velero בסביבת GCP והגדרת החיבור ל-bucket של AWS.
3. שחזור הגיבוי בסביבת GCP:
velero restore create --from-backup aws-backup
באמצעות תהליך זה, תוכלו להעביר בקלות את כל הקלאסטר והמשאבים המנוהלים בו בין סביבות שונות, ולהבטיח זמינות ושחזור מהיר במקרה של תקלה.
סיכום
Velero הוא כלי עוצמתי לניהול גיבויים ושחזורים בסביבות Kubernetes. הוא מספק פתרון מלא לגיבוי ושחזור אוטומטי של סביבות, מאפשר מעבר בין קלאסטרים וספקי ענן, ומשלב כלים כמו Restic לגיבוי נפחים בצורה מאובטחת. בעזרת Velero, תוכלו להבטיח שהסביבות שלכם מוגנות ומוכנות לשחזור בכל מצב.
אם אתם מעוניינים ללמוד בצורה מעמיקה יותר אתם מוזמנים להתייעץ איתנו על קורס DevOps.