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

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

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

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

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

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

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

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

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

בקשת תפקידים ב-IAM

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

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

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

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

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

המסוף

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

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

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

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

  6. בקטע Schedule and retention, מבצעים את הפעולות הבאות ולוחצים על Continue:

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

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. לוחצים על הכרטיסייה Backup Plans.
  5. לוחצים על תוכנית גיבוי ברשימה כדי לראות את הפרטים שלה. משתמשים עם הרשאות אדמין לגיבוי אשכולות של משתמשים יכולים לראות את כל תוכניות הגיבוי בארגון. משתמשים עם התפקיד "יוצר גיבויים" יכולים לראות את כל תוכניות הגיבוי בפרויקט שנבחר.

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

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

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

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

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

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

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

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

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

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