Auf dieser Seite wird beschrieben, wie Sie ProtectedApplication
-Ressourcen verwenden, um das Verhalten von Sicherungen und Wiederherstellungen in Google Distributed Cloud (GDC) Air-Gapped 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.Dies 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
ProtectedApplication
ist die kleinste Namespace-Einheit, die Sie für einen Sicherungs- oder Wiederherstellungsbereich angeben können. - Um eine spezielle Sicherungsorchestrierung bereitzustellen, wenn
ProtectedApplication
in den Bereich einer Sicherung fällt. Insbesondere wenn dieProtectedApplication
PersistentVolumeClaim
-Ressourcen (PersistentVolumeClaim) direkt oder über eine Vorlage aus einemStatefulSet
enthä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 „Plattformadministrator“:
- 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 Sicherungen und führt Wiederherstellungen durch. Bitten Sie Ihren Projekt-IAM-Administrator, Ihnen die Rolle „Backup Creator“ (
backup-creator
) zuzuweisen.
- Backup Creator: Erstellt manuelle Sicherungen 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 „Plattformadministrator“:
Geschützte Anwendungsressourcen bereitstellen
Das folgende Beispiel zeigt eine Deployment
-Spezifikation mit einer ProtectedApplication
-Ressource, die alle Ressourcen sichert, die der Anwendung während der Sicherung zugeordnet wurden, und alle Ressourcen während der Wiederherstellung wiederherstellt:
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
Geben Sie die ProtectedApplication
in der Liste der selectedApplications
im backupScope
an. Beispiel:
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
Dieses Beispiel enthält die folgenden Werte:
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:
|
Nächste Schritte
- Informationen zum Auswählen einer Strategie für geschützte Anwendungen finden Sie unter Strategien für geschützte Anwendungen.