במאמר הזה מוסבר איך להשתמש במשאבי ProtectedApplication כדי להתאים אישית את ההתנהגות של הגיבוי והשחזור ב-Google Distributed Cloud (GDC) עם air gap.
השלבים האלה הם אופציונליים ולא נדרשים כדי להגדיר בהצלחה גיבוי ושחזור של עומסי העבודה. משאבי ProtectedApplication הם משאבי Kubernetes אופציונליים במרחבי שמות, שמאפשרים להתאים אישית את הגיבוי והשחזור של אפליקציות עם שמירת מצב (stateful) ספציפיות. בלי משאבי ProtectedApplication, חלות ההגבלות הבאות:
- אתם מגבילים את רמת הפירוט של היקף הגיבוי והשחזור לרמת מרחב השמות.
- במהלך הגיבוי לא מתבצעות פעולות של ריקון והשהיה בעומסי העבודה.כתוצאה מכך, יכול להיות שמכונות וירטואליות עם כמה דיסקים לא יהיו עקביות אחרי קריסה לאחר השחזור.
משאבי ProtectedApplication הם משאבים אופציונליים של מרחב שמות ב-Kubernetes, שמשמשים להתאמה אישית של הגיבוי והשחזור של אפליקציות ספציפיות עם שמירת מצב.
המשאב ProtectedApplication מגדיר אילו משאבים ב-Kubernetes שייכים למכונה של האפליקציה. אתם יכולים להגדיר באופן ידני תזמור מיוחד באמצעות הפקודה kubectl כדי ליצור גיבוי ושחזור של האפליקציות האלה בתרחישים הבאים:
- כדי לזהות קבוצת משאבים במרחב שמות שאפשר לגבות או לשחזר בנפרד מהמשאבים האחרים באותו מרחב שמות.
ProtectedApplicationהוא הישות הכי מפורטת של מרחב השמות שאפשר לזהות בהיקף של גיבוי או שחזור. - כדי לספק תזמור גיבוי מיוחד בכל פעם ש-
ProtectedApplicationנכלל בהיקף הגיבוי. באופן ספציפי, אםProtectedApplicationמכיל משאביPersistentVolumeClaim(PVC) ישירות או באמצעות תבנית מ-StatefulSet, אפשר להריץ הוקים לפני ואחרי הגיבוי של אמצעי האחסון. הוקים הם פקודות שפועלות בקונטיינרים של אפליקציות. ה-hooks האלה משמשים בדרך כלל לפעולות flush, quiesce או unquiesce, ומספקים גיבוי עקבי לאפליקציה.
לפני שמתחילים
צריך להגדיר את המשאב ProtectedApplication לפני שיוצרים תוכנית גיבוי. מידע נוסף מופיע במאמר תכנון קבוצת גיבויים.
בקשת תפקידים ב-IAM
כדי להשתמש במשאבים של ProtectedApplication, צריך לבקש ממנהל חשבון ארגוני ב-IAM או ממנהל הפרויקט ב-IAM להקצות לכם את אחד מהתפקידים הבאים:
אדמין של גיבוי אשכולות משתמשים (
user-cluster-backup-admin): יוצר, מקבל, מציג, צופה, מעדכן, מתקן ומוחק משאבי גיבוי כמו תוכניות גיבוי ושחזור באשכולות משתמשים. כדי לבקש את התפקיד הזה, פנו למנהל החשבון הארגוני ב-IAM.יוצר גיבוי (
backup-creator): יוצר, מקבל, מציג, צופה, מעדכן, מתקן ומוחק בקשות גיבוי ידניות ובקשות שחזור ידניות. כדי לבקש את התפקיד הזה, פנו לאדמין של הפרויקט ב-IAM.
פריסת משאבי אפליקציה מוגנים
קטע הקוד הבא ב-YAML הוא דוגמה למפרט של Deployment עם משאב ProtectedApplication שמגבה את כל המשאבים שמשויכים לאפליקציה במהלך הגיבוי, ומשחזר את כל המשאבים במהלך השחזור:
apiVersion: v1
kind: Namespace
metadata:
name: "applications"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: protected-application-deployment
namespace: applications
labels:
app: protected
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: unprotected-application-deployment
namespace: applications
labels:
app: unprotected
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
---
apiVersion: gkebackup.gke.io/v1
kind: ProtectedApplication
metadata:
name: protected-application-test
namespace: applications
spec:
applicationName: protectedApplication
resourceSelection:
type: Selector
selector:
matchLabels:
app: protected
components:
- name: protect-application-deployment
resourceKind: Deployment
resourceNames:
- protected-application-deployment
strategy:
type: BackupAllRestoreAll
backupAllRestoreAll: {}
מציינים את ProtectedApplication ברשימה של selectedApplications ב-backupScope. לדוגמה:
apiVersion: backup.gdc.goog/v1
kind: BackupPlan
metadata:
name: protected-application-backupplan-test
namespace: applications
spec:
clusterName: "cluster-sample"
backupSchedule:
cronSchedule: "*/30 * * * *"
paused: true
backupConfig:
backupScope:
selectedApplications:
namespacedNames:
- name: protected-application-test
namespace: applications
backupRepository: "backup-repository"
retentionPolicy:
backupDeleteLockDays: 10
backupRetainDays: 10
הדוגמה הזו כוללת את הערכים הבאים:
| ערך | תיאור |
|---|---|
resourceSelection |
מגדירה איך לזהות משאבים ששייכים לאפליקציה המוגנת:
|
components |
רשימת הרכיבים של האפליקציה המוגנת, כמו פריסות או קבוצות עם שמירת מצב:
|
המאמרים הבאים
- כדי לבחור אסטרטגיה של אפליקציה מוגנת, עיינו בקטע אסטרטגיות של אפליקציות מוגנות.