Auf dieser Seite wird beschrieben, wie Sie ProtectedApplication-Ressourcen verwenden, um das Verhalten von Sicherungen und Wiederherstellungen in Google Distributed Cloud (GDC) mit Air Gap anzupassen.
Die auf dieser Seite beschriebenen Schritte sind optional und nicht erforderlich, um die Sicherung und Wiederherstellung für Ihre Arbeitslasten zu konfigurieren. ProtectedApplication-Ressourcen sind optionale Kubernetes-Ressourcen in Namespaces, mit denen die Sicherung und Wiederherstellung einzelner zustandsorientierter Anwendungen angepasst werden kann. Ohne ProtectedApplication-Ressourcen gelten die folgenden Einschränkungen:
- Sie beschränken die Granularität des Sicherungs- und Wiederherstellungsbereichs auf die Namespace-Ebene.
- Während der Sicherung werden keine Flush- und Quiesce-Vorgänge für Arbeitslasten ausgeführt.Das kann dazu führen, dass virtuelle Maschinen mit mehreren Festplatten nach der Wiederherstellung nicht absturzkonsistent sind.
ProtectedApplication-Ressourcen sind optionale Kubernetes-Namespace-Ressourcen, die zum Anpassen der Sicherung und Wiederherstellung einzelner zustandsorientierter Anwendungen verwendet werden.
Die ProtectedApplication-Ressource definiert, welche Kubernetes-Ressourcen zu einer Anwendungsinstanz gehören. Sie können eine spezielle Orchestrierung manuell einrichten, indem Sie mit dem Befehl kubectl eine Sicherung und Wiederherstellung dieser Anwendungen in den folgenden Szenarien erstellen:
- Eine Reihe von Ressourcen in einem Namespace bestimmen, die unabhängig von den anderen Ressourcen in diesem Namespace gesichert oder wiederhergestellt werden können. Ein
ProtectedApplicationist die kleinste Namespace-Einheit, die Sie für einen Sicherungs- oder Wiederherstellungsbereich identifizieren können. - Um eine spezielle Sicherungsorchestrierung bereitzustellen, wenn die
ProtectedApplicationin den Umfang einer Sicherung fällt. Insbesondere wenn dieProtectedApplicationPersistentVolumeClaim-Ressourcen (PersistentVolumeClaim) direkt oder über eine Vorlage aus einemStatefulSetenthält, können Sie Hooks vor und nach dem Sichern der Volumes ausführen. Hooks sind Befehle, die in Anwendungscontainern ausgeführt werden. Diese Hooks werden häufig für Flush-, Quiesce- oder Unquiesce-Vorgänge verwendet und bieten eine anwendungskonsistente Sicherung.
Hinweise
Damit Sie ProtectedApplication-Ressourcen verwenden können, benötigen Sie Folgendes:
- Sie müssen die
ProtectedApplication-Ressource definieren, bevor Sie einen Sicherungsplan erstellen können. Weitere Informationen finden Sie unter Eine Reihe von Sicherungen planen. Die erforderliche Identitäts- und Zugriffsrolle:
- Für Nutzer mit der Rolle „Platform Administrator“ (PA):
- Administrator für Sicherungen von Nutzerclustern: Verwaltet Sicherungsressourcen wie Sicherungs- und Wiederherstellungspläne in Nutzerclustern. Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „User Cluster Backup Admin“ (
user-cluster-backup-admin) zuzuweisen.
- Administrator für Sicherungen von Nutzerclustern: Verwaltet Sicherungsressourcen wie Sicherungs- und Wiederherstellungspläne in Nutzerclustern. Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „User Cluster Backup Admin“ (
- Für Nutzer mit der Rolle „Application Operator“ (AO):
- Backup Creator: Erstellt manuelle Backups und führt Wiederherstellungen durch. Bitten Sie Ihren Projekt-IAM-Administrator, Ihnen die Rolle „Backup Creator“ (
backup-creator) zuzuweisen.
- Backup Creator: Erstellt manuelle Backups und führt Wiederherstellungen durch. Bitten Sie Ihren Projekt-IAM-Administrator, Ihnen die Rolle „Backup Creator“ (
- Weitere Informationen finden Sie unter Rollendefinitionen.
- Für Nutzer mit der Rolle „Platform Administrator“ (PA):
Geschützte Anwendungsressourcen bereitstellen
Hier ist ein Beispiel für eine Deployment-Spezifikation mit einer ProtectedApplication-Ressource, die während der Sicherung alle mit der Anwendung verknüpften Ressourcen sichert und während der Wiederherstellung alle Ressourcen wiederherstellt:
apiVersion: v1
kind: Namespace
metadata:
name: USER_CLUSTER_NS
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: protected-application-deployment
namespace: USER_CLUSTER_NS
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: USER_CLUSTER_NS
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_APP_NAME
namespace: USER_CLUSTER_NS
spec:
resourceSelection:
type: Selector
selector:
matchLabels:
app: protected
components:
- name: application-deployment
resourceKind: Deployment
resourceNames:
- protected-application-deployment
strategy:
type: BackupAllRestoreAll
Ersetzen Sie Folgendes:
USER_CLUSTER_NS: der Namespace im Nutzercluster, in dem sich Ihre geschützte Anwendung befindet.PROTECTED_APP_NAME: der Name IhresProtectedApplication.
Dieses Beispiel enthält die folgenden Werte für ProtectedApplication:
| Wert | Beschreibung |
|---|---|
resourceSelection |
Definiert, wie Ressourcen identifiziert werden, die zur geschützten Anwendung gehören:
|
components |
Die Liste der Komponenten für die geschützte Anwendung, z. B. Bereitstellungen oder zustandsorientierte Sets:
|
Geben Sie die ProtectedApplication in der Liste der selectedApplications im backupScope an. Beispiel:
apiVersion: backup.gdc.goog/v1
kind: BackupPlan
metadata:
name: BACKUP_PLAN
namespace: USER_CLUSTER_NS
spec:
clusterName: USER_CLUSTER
backupSchedule:
cronSchedule: CRON_SCHEDULE
paused: BACKUP_SCHEDULE_STATUS
backupConfig:
backupScope:
selectedApplications:
namespacedNames:
- name: PROTECTED_APP_NAME
namespace: USER_CLUSTER_NS
backupRepository: BACKUP_REPOSITORY
retentionPolicy:
backupDeleteLockDays: BACKUP_DELETE_LOCK_DAYS
backupRetainDays: BACKUP_RETAIN_DAYS
Ersetzen Sie Folgendes:
BACKUP_PLAN: der Name Ihres Sicherungsplans.USER_CLUSTER: der Name Ihres Nutzerclusters.CRON_SCHEDULE: Ein Crontab-Zeitplan, der angibt, wann Sicherungen geplant werden sollen, z. B."*/30 * * * *". Das Mindestintervall zwischen geplanten Sicherungen beträgt 10 Minuten.BACKUP_SCHEDULE_STATUS: Wenntrue, werden keine regelmäßigen Sicherungen geplant.PROTECTED_APP_NAME: Der Name, den Sie IhrerProtectedApplication-Ressource gegeben haben.BACKUP_REPOSITORY: der Name des Sicherungs-Repositorys, das Sie zum Speichern von Sicherungen verwenden.BACKUP_DELETE_LOCK_DAYS: verhindert das Löschen der Sicherung für die Anzahl der Tage, die nach der Erstellung der Sicherung angegeben wurden, z. B.10 days.BACKUP_RETAIN_DAYS: Definiert die Gesamtzahl der Tage, für die die Sicherung beibehalten wird. Nach diesem Zeitraum wird die Sicherung automatisch gelöscht. Wenn Sie diesen Wert auf eine höhere Zahl festlegen, kann es zu Speicherplatzmangel kommen. Wenn Sie ihn auf einen niedrigeren Wert festlegen, kann das Risiko eines Datenverlusts steigen. Wenn nicht angegeben, wird dieser Wert standardmäßig auf 35 festgelegt. Aufbewahrungsrichtlinien überschreiben nicht die Aufbewahrungsrichtlinien des Speicherorts und dürfen 90 Tage nicht überschreiten.
Nächste Schritte
- Informationen zum Auswählen einer Strategie für geschützte Anwendungen finden Sie unter Strategien für geschützte Anwendungen.