Kubernetes dirancang untuk ekstensibilitas. Anda dapat menambahkan API baru seperti API Pencadangan dan Agen Pencadangan GKE ke cluster Kubernetes. API ini sesuai dengan model API seragam, Model Resource Kubernetes (KRM).
API ini menggunakan resource kustom Kubernetes dan mengandalkan KRM. API ini digunakan untuk mengelola siklus proses pencadangan, dan untuk membuat repositori, kebijakan, dan rencana pencadangan.
Endpoint Service
URL berikut adalah endpoint API untuk Backup KRM API:
https://MANAGEMENT_API_SERVER_ENDPOINT/apis/backup.gdc.goog/v1
URL berikut adalah endpoint API untuk GKE Backup Agent API:
https://MANAGEMENT_API_SERVER_ENDPOINT/apis/gkebackup.gke.io/v1
Ganti MANAGEMENT_API_SERVER_ENDPOINT dengan endpoint server Management API.
Dokumen discovery
Gunakan perintah kubectl proxy --port=8001 untuk membuka proxy ke server API di mesin lokal Anda. Dari sana, Anda dapat mengakses dokumen discovery di salah satu URL berikut:
http://127.0.0.1:8001/apis/backup.gdc.goog/v1http://127.0.0.1:8001/apis/gkebackup.gke.io/v1
Contoh resource ClusterBackupPlan
Berikut adalah contoh resource 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
Contoh resource ProtectedApplication
Berikut adalah contoh resource 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
Contoh resource ClusterBackupRepository
Berikut adalah contoh resource 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"