BackupPolicy¶
Eine einfache BackupPolicy sieht wie folgt aus:
apiVersion: k8sbackup.afi.ai/v1alpha1
kind: BackupPolicy
metadata:
name: gold
spec:
selectors: []
repoRef: cloud
schedule:
fixed:
hours: [4, 12, 20]
daysOfWeek: [0, 1, 2, 3, 4, 5, 6]
encryptionKey: default-encryption-key
selectorsist eine Liste von Regeln, die festlegen, welche Manifeste in eine Sicherung aufgenommen werden. Eine leere Selektorenliste bedeutet, dass alle YAML-Dateien eines Namespace in die Sicherungen aufgenommen werden.`repoRefist der Name eines Repositorys, in dem Archive gespeichert werden. Derzeit wird beim Onboarding eines Mandanten ein Standard-Repository für Sicherungsarchive (cloud) erstellt. Es dient zur Datenspeicherung in der Afi-Cloud. Künftige Updates werden benutzerdefinierte, selbstverwaltete Sicherungs-Repositorys unterstützen.scheduleveranlasst die regelmäßige Ausführung von Sicherungen. Ein leererschedule-Abschnitt bedeutet, dass Sicherungen nur bei manueller Auslösung ausgeführt werden. Beim Konfigurieren eines Zeitplans können Sie über die Listehoursmehrere Sicherungszeitfenster pro Tag und über die ListedaysOfWeekdie Wochentage für die Sicherung festlegen. Die Nummerierung inhoursbeginnt mit 0 für Mitternacht (0–23), die Nummerierung indaysOfWeekmit 0 für Sonntag (0 – Sonntag, 1 – Montag, …, 6 – Samstag). Die Werte inhourswerden gemäß der beim Cluster-Onboarding angegebenen Zeitzone interpretiert. Für eine bestimmte Stunde geplante Sicherungen werden voraussichtlich innerhalb eines 15-minütigen Sicherungszeitfensters gestartet. Eine für Stunde 0, also Mitternacht, geplante Sicherung startet beispielsweise voraussichtlich im Zeitfenster von 00:00 bis 00:15 Uhr.encryptionKeyist der Name des von dieser Sicherungsrichtlinie verwendeten Verschlüsselungsschlüssels. Sicherungsverschlüsselungsschlüssel werden im Afi-Portal auf der Registerkarte Service → Settings → Secrets angezeigt und verwaltet. Ein von Afi beim Cluster-Onboarding erstellter Verschlüsselungsschlüssel heißtdefault-encryption-key. Dies ist der Standardname, er kann jedoch später geändert werden.
Mit dem folgenden Befehl können Sie die in einem Kubernetes-Cluster konfigurierten Sicherungsrichtlinien auflisten (backup-agent ist der Namespace, in dem der Afi-Sicherungsagent installiert ist):
Mit dem folgenden Befehl können Sie eine neue Sicherungsrichtlinie erstellen. Eine beispielhafte YAML-Konfiguration ist oben dargestellt:
Selektoren¶
Dieser Teil einer Sicherungsrichtlinie enthält eine Liste von Filtern. Sie werden auf Objekte in einem geschützten Namespace angewendet und bestimmen, welche YAML-Dateien in Sicherungen aufgenommen werden. Jeder Selektor hat eines der folgenden Formate:
oder
Ein include-Selektor fügt einem Snapshot Objekte hinzu, ein exclude-Selektor schließt sie aus. Die Selektoren werden in der Reihenfolge ihrer Definition angewendet.
Jedes Selektorfeld (apiVersion, kind usw.) ist optional. Ein leeres Feld stimmt mit jedem Objekt überein.
Die Funktionsweise der Selektoren lässt sich am besten anhand praktischer Beispiele erklären.
Nur Secrets sichern¶
Secrets und ConfigMaps sichern¶
Nur die Anwendungskonfiguration sichern und persistente Daten ausschließen¶
selectors:
- include: {} # zuerst alles einschließen
- exclude: # anschließend nicht benötigte Teile ausschließen
apiVersion: v1
kind: PersistentVolumeClaim
Umgekehrt nur persistente Daten sichern¶
Nur mit app.kubernetes.io/name: apache-spark-0 gekennzeichnete Manifeste sichern¶
Ausführliche Informationen zu Label-Selektoren finden Sie unter https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ und https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#labelselector-v1-meta.