בדף הזה מוסבר איך לתזמן גיבויים של Cassandra ב-Cloud Storage. בשיטה הזו, הגיבויים מאוחסנים בקטגוריה של Cloud Storage שצוינה.
כדי לתזמן גיבויים של Cassandra, פועלים לפי השלבים הבאים:
- מריצים את הפקודה
create-service-accountהבאה כדי ליצור חשבון שירות (SA) ב-Google Cloud עם התפקיד הרגילroles/storage.objectAdmin. תפקיד SA הזה מאפשר לכם לכתוב נתוני גיבוי ב-Cloud Storage. מריצים את הפקודה בספרייה$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/../tools/create-service-account --env non-prod --dir ./
הפקודה הזו יוצרת חשבון שירות יחיד בשם
apigee-non-prodלשימוש בסביבות שאינן סביבות ייצור, וממקמת את קובץ המפתח שהורד בספרייה./.מידע נוסף על חשבונות שירות ב-Google Cloud זמין במאמר יצירה וניהול של חשבונות שירות.
- הפקודה
create-service-accountשומרת קובץ JSON שמכיל את המפתח הפרטי של חשבון השירות. הקובץ נשמר באותה ספרייה שבה מופעלת הפקודה. תצטרכו את הנתיב לקובץ הזה בשלבים הבאים. - יצירת קטגוריה של Cloud Storage מציינים מדיניות שמירת נתונים סבירה לקטגוריה. Apigee ממליצה על מדיניות שמירת נתונים של 15 ימים.
- פותחים את קובץ
overrides.yaml. - כדי להפעיל גיבוי, מוסיפים את המאפיינים הבאים
cassandra.backup. אל תסירו אף אחד מהמאפיינים שכבר הוגדרו.פרמטרים
cassandra: ... backup: enabled: true serviceAccountPath: SA_JSON_FILE_PATH dbStorageBucket: CLOUD_STORAGE_BUCKET_NAME schedule: BACKUP_SCHEDULE_CODE cloudProvider: "GCP" # For remote server backup set this to HYBRID (all caps) ...דוגמה
... cassandra: storage: type: gcepd capacity: 50Gi gcepd: replicationType: regional-pd auth: default: password: "abc123" admin: password: "abc234" ddl: password: "abc345" dml: password: "abc456" nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-data backup: enabled: true serviceAccountPath: "my-cassandra-backup-sa.json" dbStorageBucket: "myname-cassandra-backup" schedule: "45 23 * * 6" cloudProvider: "GCP" ...
כאשר:
- מחילים את שינויי ההגדרות על האשכול החדש. לדוגמה:
helm upgrade datastore apigee-datastore/ \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE.yaml
OVERRIDES_FILE הוא הנתיב לקובץ ההחלפות שערכתם.
- מאמתים את עבודת הגיבוי. לדוגמה:
kubectl get cronjob -n APIGEE_NAMESPACE
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE apigee-cassandra-backup 33 * * * * False 0 <none> 94s
| מאפיין (property) | תיאור |
|---|---|
backup:enabled |
הגיבוי מושבת כברירת מחדל. צריך להגדיר את המאפיין הזה לערך true. |
backup:serviceAccountPath |
SA_JSON_FILE_PATH הנתיב במערכת הקבצים לקובץ ה-JSON של חשבון השירות שהורד כשמריצים את הפקודה הנתיב צריך להיות יחסי לספריית התרשימים של apigee-datastore. לדוגמה, |
backup:dbStorageBucket |
CLOUD_STORAGE_BUCKET_NAME השם של קטגוריה קיימת ב-Google Cloud Storage שתשמש לאחסון ארכיונים של גיבויים. אם אתם צריכים ליצור קטגוריה, תוכלו לעיין במאמר בנושא יצירת קטגוריות. |
backup:cloudProvider |
לגיבוי ב-Cloud Storage, מגדירים את המאפיין ל- לגיבוי של שרת מרוחק, מגדירים את המאפיין לערך |
backup:schedule |
BACKUP_SCHEDULE_CODE השעה שבה הגיבוי מתחיל, שצוינה בתחביר crontab רגיל. ברירת מחדל: |
הפעלת גיבוי ידני
גיבויים של Cassandra נוצרים אוטומטית בהתאם ללוח הזמנים של cron שמוגדר בקובץ overrides.yaml.
כדי להתחיל גיבוי ידני, משתמשים בפקודה הבאה:
kubectl create job -n APIGEE_NAMESPACE --from=cronjob/apigee-cassandra-backup BACKUP_POD_NAME