תכנון של קבוצת גיבויים

במאמר הזה מוסבר איך ליצור ולנהל תוכניות גיבוי לעומסי עבודה של אשכולות ב-Google Distributed Cloud ‏ (GDC) עם בידוד פיזי.

תוכניות גיבוי מספקות את פונקציות ההגדרה, המיקום והניהול של רצף גיבויים. תוכנית גיבוי מכילה הגדרת גיבוי, כולל אשכול המקור ובחירת עומסי העבודה לגיבוי. ‫Google ממליצה לספק לכל אשכול לפחות תוכנית גיבוי אחת.

אפשר ליצור תוכנית גיבוי אחת או יותר לכל אשכול. יכול להיות שתרצו לחלק את הגיבויים של האשכול שלכם למחיצות מאחת מהסיבות הבאות:

  • במקום גיבוי אחד גדול מאוד שמתבצע בשעה מסוימת ביום, אתם רוצים כמה גיבויים קטנים יותר שמתבצעים לאורך היום.
  • אתם רוצים לגבות חלקים מסוימים של האשכול בתדירות גבוהה יותר מאחרים, למשל גיבויים יומיים של מרחבי שמות מסוימים וגיבויים שעתיים של מרחבי שמות אחרים.

אפשר להוסיף אשכול או מכונה וירטואלית (VM) אחת לתוכנית גיבוי אחת או יותר. אי אפשר להוסיף יותר מאשכול אחד לתוכנית גיבוי, אבל אפשר להוסיף כמה מכונות וירטואליות לתוכנית גיבוי אחת אם הן נמצאות באותו אשכול. כל משאבי הגיבוי והשחזור צריכים להיות משויכים לשם פרויקט.

המסמך הזה מיועד למפתחים בקבוצות של אדמינים בפלטפורמה או מפעילים של אפליקציות שמנהלים פעולות גיבוי של אשכולות. מידע נוסף מופיע במאמרי העזרה בנושא קהלים ב-GDC עם פער אבטחה.

לפני שמתחילים

כשמבצעים גיבוי באשכול, צריך לוודא שהפרויקט שבו משתמשים כדי ליצור את תוכנית הגיבוי מצורף לאשכול הזה.

שליחת בקשה לתפקידי IAM

כדי לקבל, להציג ולצפות במשאבי גיבוי כמו תוכניות גיבוי ושחזור באשכולות משתמשים, צריך לפנות לאדמין IAM בארגון ולבקש את התפקיד אדמין גיבוי של אשכול משתמשים (usercluster-backup-admin) בפרויקט.

יצירת תוכנית גיבוי

צריך להגדיר תזמון cron לתוכנית הגיבוי, כדי שהגיבויים ייווצרו באופן אוטומטי בהתאם לתזמון הזה. אפשר גם לגבות את עומסי העבודה באופן ידני. מידע נוסף זמין במאמר בנושא יצירת גיבוי ידני.

יוצרים תוכניות גיבוי באמצעות מסוף GDC או ה-API.

המסוף

  1. נכנסים למסוף GDC.
  2. בתפריט הניווט, לוחצים על Backup for Clusters (גיבוי לאשכולות).
  3. לוחצים על יצירת תוכנית גיבוי.
  4. בקטע פרטי התוכנית, מבצעים את השלבים הבאים ולוחצים על המשך:
    1. ברשימה Cluster, בוחרים את האשכול שרוצים לגבות.
    2. ברשימה Project, בוחרים את הפרויקט.
    3. בשדה Backup plan name (שם תוכנית הגיבוי), מזינים את השם של תוכנית הגיבוי שבחרתם.
    4. (אופציונלי) בשדה Backup plan description (תיאור תוכנית הגיבוי) מזינים תיאור לתוכנית הגיבוי.
    5. בשדה Backup repo, בוחרים מאגר גיבוי. מאגרי גיבוי הם קבוצה של יישומי אחסון אובייקטים.
    6. לוחצים על הבא.
  5. בקטע Scope and encryption (היקף והצפנה), מבצעים את השלבים הבאים ולוחצים על Continue (המשך):

    1. בוחרים אחת מהאפשרויות הבאות להיקף של תוכנית הגיבוי:

      1. כדי לגבות את כל משאבי מרחב השמות בגיבוי, לוחצים על Entire cluster (האשכול כולו).
      2. לוחצים על Selected namespaces within the cluster (מרחבי שמות נבחרים באשכול) כדי לבחור את מרחבי השמות באשכול שרוצים לגבות.
        1. לוחצים על עריכת מרחב שמות של אשכול ואז על הוספת מרחב שמות של אשכול כדי להזין מרחב שמות.
      3. לוחצים על Selected protected applications within this cluster (אפליקציות נבחרות שמוגנות באשכול הזה) כדי להוסיף משאבים על ידי ציון מרחב השמות ושם האפליקציה.
        1. לוחצים על Edit Protected Applications (עריכת אפליקציות מוגנות) ואז על Add Protected Application (הוספת אפליקציה מוגנת) כדי להזין מרחב שמות ואפליקציה מוגנת.
    2. לוחצים על Include Secrets (הכללת סודות) כדי לכלול משאבי Kubernetes Secret.

    3. אם רוצים שהנתונים של נפח האחסון ייכללו בגיבוי, לוחצים על Include persistent volume data (הכללת נתונים של נפח אחסון מתמשך). אם רוצים ליצור אמצעי אחסון ריקים במהלך הגיבוי, צריך לבטל את הסימון של התיבה הזו.

  6. בקטע Schedule and retention (תזמון ושמירה), מבצעים את השלבים הבאים ולוחצים על Continue (המשך):

    1. כדי להגדיר לוח זמנים, מזינים ביטוי באמצעות תחביר cron רגיל בשדה מחרוזת CRON. לדוגמה, הביטוי 10 3 * * * יוצר גיבוי כל יום בשעה 03:10. כל השעות מפורשות כ-UTC. מרווח הזמן המינימלי בין גיבויים מתוזמנים הוא 10 דקות.
    2. בשדה מחיקת הגיבויים אחרי, מגדירים את מספר הימים שבהם הגיבוי יישמר. אחרי שמגיעים למספר הימים שנקבע, הגיבוי נמחק באופן אוטומטי.
    3. מגדירים את מספר הימים שבמהלכם אי אפשר למחוק גיבויים.
    4. כדי לנעול את מדיניות השמירה, לוחצים על סמל הנעילה כדי לשנות את מצב הנעילה מOff לOn.
  7. בודקים את פרטי תוכנית הגיבוי ולוחצים על יצירת תוכנית.

API

יוצרים ClusterBackupPlan משאב בהתאמה אישית באשכול כדי לתזמן גיבויים. תוכנית גיבוי מתזמנת גיבויים באופן תקופתי על סמך backupSchedule. משאבי ClusterBackupPlan הם משאבים של מרחב שמות. דוגמה לClusterBackupPlan:

apiVersion: backup.gdc.goog/v1
kind: ClusterBackupPlan
metadata:
  name: CLUSTER_BACKUP_PLAN
  namespace: PROJECT_NAME
spec:
  targetCluster:
    targetClusterType: UserCluster
    targetClusterName:
      kind: "Cluster"
      name: CLUSTER_NAME
  backupSchedule:
    cronSchedule: CRON_SCHEDULE
    paused: BACKUP_SCHEDULE_STATUS
    maxConcurrency: MAX_CONCURRENCY
  clusterBackupConfig:
    backupScope:
      selectedNamespaces:
        namespaces: [NAME_SPACE]
    clusterBackupRepositoryName: CLUSTER_BACKUP_REPOSITORY
  retentionPolicy:
    backupDeleteLockDays: BACKUP_DELETE_LOCK_DAYS
    backupRetainDays: BACKUP_RETAIN_DAYS
  description: BACKUP_PLAN_DESCRIPTION

מחליפים את מה שכתוב בשדות הבאים:

  • CLUSTER_BACKUP_PLAN: השם של תוכנית הגיבוי של האשכול.
  • PROJECT_NAME: השם של פרויקט GDC.
  • CLUSTER_NAME: שם האשכול שרוצים לגבות. השדה targetCluster שמקיף את הרכיבים האלה כולל את הרכיבים הבאים:
    • targetClusterType: סוג האשכול לגיבוי, למשל UserCluster או ManagementAPI. בדוגמה הזו נשתמש ב-UserCluster.
    • targetClusterName: מכיל את name, שמוגדר על ידי CLUSTER_NAME.
  • CRON_SCHEDULE: תזמון crontab שמציין מתי לתזמן גיבויים, כמו "*/30 * * * *". מרווח הזמן המינימלי בין גיבויים מתוזמנים הוא 10 דקות.
  • BACKUP_SCHEDULE_STATUS: אם true, לא מתוזמנים גיבויים תקופתיים.
  • MAX_CONCURRENCY: מציין את המספר המקסימלי של גיבויים מתוזמנים פעילים שיכולים להתקיים בו-זמנית במסגרת תוכנית גיבוי. אם מציינים מספר, לא יכולים להיות יותר ממספר הגיבויים המתוזמנים הזה מתוכנית הגיבוי הזו במצב פעיל בכל זמן נתון. אם לא מציינים ערך, ברירת המחדל היא 2. הערך צריך להיות בין 1 ל-7.
  • NAME_SPACE: רשימה של מרחבי שמות שצריך לכלול בגיבוי. השדה clusterBackupConfig כולל פרטי הגדרה של גיבויים:
    • backupScope: מציין אילו משאבים מגובים. בדוגמה הזו נשתמש ב-selectedNamespaces. הערכים האפשריים כוללים:
      • allNamespaces: כולל את כל המשאבים בכל מרחבי השמות.
      • selectedNamespaces: מתעד משאבים ברשימה של מרחבי השמות שצוינו.
      • selectedApplication: מתעד משאבים שמוגדרים על ידי protectedApplications.
    • namespaces: רלוונטי אם הערך של backupScope הוא selectedNamespaces.
  • CLUSTER_BACKUP_REPOSITORY: הערך של clusterBackupRepositoryName ב-clusterBackupConfig. זהו מאגר היעד שבו נשמרים הגיבויים, והוא צריך להיות מיובא כ-ReadWrite.
  • BACKUP_DELETE_LOCK_DAYS: מונע את מחיקת הגיבוי למשך מספר הימים שצוין לאחר יצירת הגיבוי, לדוגמה, 10 days.
  • BACKUP_RETAIN_DAYS: מגדיר את המספר הכולל של הימים לשמירת הגיבוי. אחרי התקופה הזו, הגיבוי נמחק אוטומטית. הגדרת ערך גבוה יותר עלולה לגרום לניצול מלא של נפח האחסון, והגדרת ערך נמוך יותר עלולה להגדיל את הסיכון לאובדן נתונים. אם לא מציינים ערך, ערך ברירת המחדל הוא 35. כללי מדיניות שמירת הנתונים לא מבטלים את כללי מדיניות שמירת הנתונים של מיקום האחסון, והם לא יכולים לחרוג מ-90 ימים.
  • BACKUP_PLAN_DESCRIPTION: תיאור של תוכנית הגיבוי.

אחרי שיוצרים תוכנית גיבוי, הגיבויים נוצרים אוטומטית עם הגדרת הגיבוי שצוינה, על סמך לוח הזמנים של הגיבוי.

צפייה בתוכנית גיבוי

כדי להציג תוכנית גיבוי באמצעות מסוף GDC:

  1. נכנסים למסוף GDC.
  2. בתפריט הניווט, לוחצים על Backup for Clusters (גיבוי לאשכולות).
  3. לוחצים על Select project ובוחרים ארגון כדי לראות את כל תוכניות הגיבוי בארגון, או בוחרים פרויקט כדי לראות את כל תוכניות הגיבוי בפרויקט.
  4. לוחצים על הכרטיסייה תוכניות גיבוי.
  5. כדי לראות את הפרטים של תוכנית גיבוי, לוחצים על תוכנית הגיבוי ברשימה. משתמשים עם הרשאות אדמין לגיבוי של אשכול משתמשים יכולים לראות את כל תוכניות הגיבוי בארגון. משתמשים עם התפקיד 'יוצר גיבויים' יכולים לראות את כל תוכניות הגיבוי בפרויקט שנבחר.

עריכה של תוכנית גיבוי

כדי לערוך תוכנית גיבוי באמצעות מסוף GDC:

  1. נכנסים למסוף GDC.
  2. בתפריט הניווט, לוחצים על Backup for Clusters (גיבוי לאשכולות).
  3. לוחצים על Select project (בחירת פרויקט) ובוחרים ארגון כדי לראות את כל תוכניות הגיבוי בארגון, או בוחרים פרויקט כדי לראות את כל תוכניות הגיבוי בפרויקט.
  4. לוחצים על הכרטיסייה תוכניות גיבוי.
  5. לוחצים על השם של תוכנית הגיבוי שרוצים לערוך.
  6. לוחצים על הכרטיסייה Plan Configuration (הגדרת התוכנית) כדי לראות את השדות שאפשר לשנות.
  7. לוחצים על סמל העריכה לצד תזמון ושמירה כדי לערוך את המשאב:

    1. כדי לעדכן לוח זמנים, מזינים ביטוי באמצעות תחביר cron רגיל בשדה מחרוזת CRON. לדוגמה, הביטוי 10 3 * * * יוצר גיבוי כל יום בשעה 03:10. כל השעות מפורשות כ-UTC. מרווח הזמן המינימלי בין גיבויים מתוזמנים הוא 10 דקות.
    2. בשדה מחיקת הגיבויים אחרי, מגדירים את מספר הימים שבהם הגיבוי יישמר. אחרי שמגיעים למספר הימים שנקבע, הגיבוי נמחק באופן אוטומטי.
    3. בשדה מניעת מחיקה למשך, מגדירים את מספר הימים שבמהלכם אי אפשר למחוק גיבויים.

    4. כדי לנעול את מדיניות השמירה, לוחצים על סמל הנעילה ומעבירים את המצב מOff לOn.

    5. לוחצים על הלחצן שמירה כדי לאשר את השינויים.

השבתה של תוכנית גיבוי

כדי להשבית תוכנית גיבוי באמצעות מסוף GDC:

  1. נכנסים למסוף GDC.
  2. בתפריט הניווט, לוחצים על Backup for Clusters (גיבוי לאשכולות).
  3. לוחצים על Select project, בוחרים ארגון כדי לראות את כל תוכניות הגיבוי בארגון או בוחרים פרויקט כדי לראות את כל תוכניות הגיבוי בפרויקט.
  4. לוחצים על הכרטיסייה תוכניות גיבוי.
  5. לוחצים על השם של תוכנית הגיבוי שרוצים להשבית.
  6. לוחצים על הלחצן השבתת התוכנית.
  7. מזינים בשדה את השם של תוכנית הגיבוי שרוצים להשבית.
  8. לוחצים על הלחצן השבתה כדי להשלים את ההשבתה של תוכנית הגיבוי הזו.

המאמרים הבאים