סקירה כללית על Backup API

‫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/v1
  • http://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"