Kubernetes תוכנן כך שיהיה ניתן להרחיב אותו. אתם יכולים להוסיף ממשקי API חדשים כמו Backup ו-GKE Backup Agent לאשכול Kubernetes. ממשקי ה-API האלה תואמים למודל API אחיד, Kubernetes Resource Model (KRM).
ממשקי ה-API האלה משתמשים במשאבים מותאמים אישית של Kubernetes ומסתמכים על KRM. ממשקי ה-API משמשים לניהול מחזור החיים של הגיבויים וליצירה של מאגרי גיבויים, כללי מדיניות ותוכניות.
נקודות קצה של שירותים
כתובת ה-URL הבאה היא נקודת קצה ל-API של Backup KRM:
https://MANAGEMENT_API_SERVER_ENDPOINT/apis/backup.gdc.goog/v1
כתובת ה-URL הבאה היא נקודת קצה ל-API של GKE Backup Agent:
https://MANAGEMENT_API_SERVER_ENDPOINT/apis/gkebackup.gke.io/v1
מחליפים את הערך MANAGEMENT_API_SERVER_ENDPOINT בנקודת הקצה של שרת Management API.
מסמך Discovery
משתמשים בפקודה kubectl proxy --port=8001 כדי לפתוח פרוקסי לשרת ה-API במחשב המקומי. אפשר לגשת למסמך Discovery מאחת מכתובות ה-URL הבאות:
http://127.0.0.1:8001/apis/backup.gdc.goog/v1http://127.0.0.1:8001/apis/gkebackup.gke.io/v1
דוגמה למשאב ClusterBackupPlan
דוגמה למשאב ClusterBackupPlan:
apiVersion: backup.gdc.goog/v1
kind: ClusterBackupPlan
metadata:
name: backup-plan
namespace: project-namespace
spec:
targetCluster:
targetClusterType: UserCluster
targetClusterName:
kind: "Cluster"
name: "cluster-sample"
backupSchedule:
cronSchedule: "*/30 * * * *"
paused: false
clusterBackupConfig:
backupScope:
selectedNamespaces:
namespaces: ["nginx"]
clusterBackupRepositoryName: backup-repository
retentionPolicy:
backupDeleteLockDays: 10
backupRetainDays: 10
דוגמה למשאב ProtectedApplication
דוגמה למשאב ProtectedApplication:
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
דוגמה למשאב ClusterBackupRepository
דוגמה למשאב ClusterBackupRepository:
apiVersion: backup.gdc.goog/v1
kind: ClusterBackupRepository
metadata:
name: user-1-user
namespace: user-1-user-cluster
spec:
secretReference:
namespace: "object-storage-secret-ns"
name: "object-storage-secret"
endpoint: "https://objectstorage.google.gdch.test"
type: "S3"
s3Options:
bucket: "fully-qualified-bucket-name"
region: "us-east1"
forcePathStyle: true
importPolicy: "ReadWrite"