Einführung
In diesem Tutorial erfahren Sie, wie Sie TrilioVault für Kubernetes (oder TVK) in Ihrem DOKS-Cluster bereitstellen, Backups erstellen und sich von einem Backup wiederherstellen können, wenn etwas schief geht. Sie können Ihren gesamten Cluster sichern oder optional Backups auf Namespace- oder Label-Basis auswählen.
Vorteile der Verwendung von Trilio:
- Erstellen Sie vollständige (oder inkrementelle) Backups Ihres Clusters und stellen Sie sie im Falle eines Datenverlusts wieder her.
- Wechseln Sie von einem Cluster zu einem anderen.
- Helm-Release-Backups werden unterstützt.
- Führen Sie vor und nach den Sicherungs- und Wiederherstellungsvorgängen Vor- und Nachhaken aus.
- Web-Verwaltungskonsole, mit der Sie den Status Ihrer Backup-/Wiederherstellungsvorgänge im Detail überprüfen können.
- Definieren Sie Aufbewahrungsrichtlinien für Ihre Backups.
- Die Anwendungslebensdauer (das bedeutet TVK selbst) kann über einen dedizierten TrilioVault-Operator verwaltet werden.
- Velero-Integration.
- Sie können anwendungsbezogene Backups und Wiederherstellungen durchführen.
Weitere Informationen finden Sie in der offiziellen Dokumentation zu den TVK CRDs.
Inhaltsverzeichnis
- Voraussetzungen
- Schritt 1 – Installation von TrilioVault für Kubernetes
- Schritt 2 – Erstellen eines TrilioVault-Ziels zum Speichern von Backups
- Schritt 3 – Kennenlernen der TVK-Webverwaltungskonsole
- Schritt 4 – Beispiel für Backup und Wiederherstellung im Namespace
- Schritt 5 – Beispiel für Backup und Wiederherstellung des gesamten Clusters
- Schritt 6 – Geplante Backups
- Schritt 7 – Sicherungsretentionsrichtlinie
- Abschluss
Voraussetzungen
Um dieses Tutorial abzuschließen, benötigen Sie folgendes:
- A DO Spaces Bucket and access keys. Save the access and secret keys in a safe place for later use.
- A Git client to clone the Starter Kit repository.
- Helm zur Verwaltung von TrilioVault Operator-Versionen und Upgrades.
- Doctl für die Interaktion mit der DigitalOcean-API.
- Kubectl für die Interaktion mit Kubernetes.
Damit TrilioVault ordnungsgemäß funktioniert und Ihre PVCs sichern kann, muss DOKS so konfiguriert sein, dass es das Container Storage Interface (CSI) unterstützt. Standardmäßig wird der Treiber bereits installiert und konfiguriert mitgeliefert. Sie können dies mit dem folgenden Befehl überprüfen:
Die Ausgabe sollte ähnlich aussehen wie der folgende Ausschnitt. Beachten Sie, dass der Bereitsteller dobs.csi.digitalocean.com ist.
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
do-block-storage (default) dobs.csi.digitalocean.com Delete Immediate true 10d
Die Installation von TrilioVault erfordert auch die benutzerdefinierte Ressourcendefinition (CRD) volumeSnapshot
für eine erfolgreiche Installation. Sie können dies mit dem folgenden Befehl überprüfen:
Die Ausgabe sollte ähnlich aussehen wie der folgende Ausschnitt. Wenn die CRD VolumeSnapshot
nicht installiert ist, siehe Installieren von VolumeSnapshot CRDs.
volumesnapshotclasses.snapshot.storage.k8s.io 2022-02-01T06:01:14Z
volumesnapshotcontents.snapshot.storage.k8s.io 2022-02-01T06:01:14Z
volumesnapshots.snapshot.storage.k8s.io 2022-02-01T06:01:15Z
Außerdem stellen Sie sicher, dass die CRD beide API-Versionen v1beta1
und v1
unterstützt. Sie können den folgenden Befehl ausführen, um die API-Version zu überprüfen:
Am Ende des CRD-YAML sollte eine storedVersions
-Liste stehen, die sowohl v1beta1
als auch v1
Werte enthält (falls nicht installiert, siehe Installieren von VolumeSnapshot CRDs):
...
- lastTransitionTime: "2022-01-20T07:58:06Z"
message: approved in https://github.com/kubernetes-csi/external-snapshotter/pull/419
reason: ApprovedAnnotation
status: "True"
type: KubernetesAPIApprovalPolicyConformant
storedVersions:
- v1beta1
- v1
Schritt 1 – Installation von TrilioVault für Kubernetes
In diesem Schritt lernen Sie, wie Sie TrilioVault für DOKS bereitstellen und TVK-Installationen über Helm verwalten. Die Sicherungsdaten werden im DO Spaces-Bucket gespeichert, der zuvor im Abschnitt Voraussetzungen erstellt wurde.
Die TrilioVault-Anwendung kann auf verschiedene Arten installiert werden:
- Über den TrilioVault Operator. Dabei definieren Sie eine
TrilioVaultManager
-CRD, die demTrilioVault
-Operator mitteilt, wie die Installation, Nachkonfigurationsschritte und zukünftige Upgrades der Trilio-Anwendungskomponenten gehandhabt werden sollen. - Über das triliovault-operator-Chart, das vollständig von Helm verwaltet wird (in diesem Tutorial behandelt).
TrilioVault mit Helm installieren
Das Starter Kit-Tutorial verwendet den Cluster-Installationsmodus für die TVK-Anwendung (applicationScope
-Helm-Wert ist auf „Cluster“ eingestellt). Alle Beispiele in diesem Tutorial basieren auf dieser Art der Installation, um ordnungsgemäß zu funktionieren.
Zuerst klonen Sie das Starter Kit Git-Repository und wechseln in das Verzeichnis Ihrer lokalen Kopie:
Anschließend fügen Sie das TrilioVault Helm-Repository hinzu und listen die verfügbaren Charts auf:
Die Ausgabe ähnelt dem Folgenden:
NAME CHART VERSION APP VERSION DESCRIPTION
triliovault-operator/k8s-triliovault-operator 2.9.2 2.9.2 K8s-TrilioVault-Operator is an operator designe...
Das Interesse gilt dem Diagramm triliovault-operator/k8s-triliovault-operator
, das TrilioVault für Kubernetes zusammen mit dem TrilioVault-Manager auf dem Cluster installiert. Sie können helm show values triliovault-operator/k8s-triliovault-operator
ausführen und in eine Datei exportieren, um alle verfügbaren Optionen anzuzeigen.
Öffnen und überprüfen Sie dann die TrilioVault Helm-Werte-Datei, die im Starterkit-Repository bereitgestellt wird, mit einem Editor Ihrer Wahl (bevorzugt mit YAML-Lint-Unterstützung).
Installieren Sie TrilioVault für Kubernetes schließlich mit Helm:
–create-namespace \
Der obige Befehl installiert sowohl den TrilioVault Operator als auch den TriloVault Manager (TVM) Custom Resource unter Verwendung der in der triliovault-values.yaml
bereitgestellten Parameter. Die TVK-Version wird nun vom tag
-Feld in der Datei 05-setup-backup-restore/assets/manifests/triliovault-values.yaml
verwaltet, sodass der Helm-Befehl immer die neueste Version von TVK hat.
- Sie können die folgenden Felder in
values.yaml
aktualisieren: installTVK.applicationScope
für die TVK-Installation mit Bereich z.B.Cluster
oderNamespaced
installTVK.ingressConfig.host
für den TVK UI-Hostnamen z.B.tvk-doks.com
installTVK.ComponentConfiguration.ingressController.service.type
für den Servicetyp zum Zugriff auf die TVK-Benutzeroberfläche z.B. NodePort
oder LoadBalancer
Überprüfen Sie nun Ihre TVK-Bereitstellung:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
triliovault-manager-tvk tvk 1 2022-06-08 08:30:08.490304959 +0000 UTC deployed k8s-triliovault-2.9.2 2.9.2
triliovault-operator tvk 1 2022-06-08 11:32:55.755395 +0300 EEST deployed k8s-triliovault-operator-2.9.2 2.9.2
Die Ausgabe sieht ähnlich wie der folgende Ausschnitt aus (die STATUS
-Spalte sollte deployed
anzeigen):
Als nächstes überprüfen Sie, ob TrilioVault läuft und einsatzbereit ist:
NAME READY UP-TO-DATE AVAILABLE AGE
k8s-triliovault-admission-webhook 1/1 1 1 83s
k8s-triliovault-control-plane 1/1 1 1 83s
k8s-triliovault-exporter 1/1 1 1 83s
k8s-triliovault-ingress-nginx-controller 1/1 1 1 83s
k8s-triliovault-web 1/1 1 1 83s
k8s-triliovault-web-backend 1/1 1 1 83s
triliovault-operator-k8s-triliovault-operator 1/1 1 1 4m22s
Die Ausgabe sieht ähnlich wie der folgende Ausschnitt aus. Alle Bereitstellungspods müssen den Zustand Ready
haben.
Wenn die Ausgabe so aussieht, haben Sie TVK erfolgreich installiert. Als nächstes erfahren Sie, wie Sie den Lizenztyp und die Gültigkeit überprüfen und wie Sie sie erneuern können.
TrilioVault-Anwendungs Lizenzierung
- Standardmäßig ist bei der Installation von TVK über Helm keine kostenlose Testlizenz automatisch installiert. Sie können jederzeit auf der Trilio-Website eine neue Lizenz für Ihren Cluster generieren, die Ihren Anforderungen entspricht (zum Beispiel können Sie den grundlegenden Lizenztyp auswählen, der es Ihnen ermöglicht, TrilioVault unbefristet auszuführen, wenn die Kapazität Ihres Clusters 10 Knoten nicht überschreitet). Eine kostenlose Testlizenz ermöglicht es Ihnen, TVK einen Monat lang auf unbegrenzten Clusterknoten auszuführen.
- TrilioVault ist für Kubernetes-Cluster mit bis zu 100.000 Knoten für DigitalOcean-Benutzer kostenlos. Sie können die folgenden Schritte befolgen, um eine spezielle Lizenz zu erstellen, die nur für DO-Kunden verfügbar ist.
Beispiele für Starter-Kits basieren auf dem Lizenztyp Cluster, um ordnungsgemäß zu funktionieren.
Erstellung und Überprüfung der TVK-Anwendungslizenz
Führen Sie den folgenden Befehl aus, um eine neue Lizenz für Ihren Cluster zu erstellen (diese wird über den License CRD verwaltet):
Der obige Befehl erstellt einen Job job.batch/tvk-license-digitalocean
, der einen Pod tvk-license-digitalocean-828rx
ausführt, um die Lizenz vom Trilio-Lizenzserver abzurufen und auf den DOKS-Cluster zu installieren. Nach Abschluss des Jobs wird er nach 60 Sekunden gelöscht.
Wenn Sie eine kostenlose Lizenz von der Trilio-Website herunterladen, wenden Sie sie mit diesem Befehl an:
Bitte führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Lizenz auf Ihrem Cluster installiert und im Aktiv
-Zustand ist.
NAME STATUS MESSAGE CURRENT NODE COUNT GRACE PERIOD END TIME EDITION CAPACITY EXPIRATION TIME MAX NODES
test-license-1 Active Cluster License Activated successfully. 1 FreeTrial 100000 2023-02-25T00:00:00Z 1
Die Ausgabe sieht ähnlich wie folgt aus. Beachten Sie den STATUS
, der Aktiv
sein sollte, sowie den Lizenztyp in der EDITION
-Spalte und die Ablaufzeit
.
Die Lizenz wird über einen speziellen CRD mit dem Namen License
verwaltet. Sie können ihn inspizieren, indem Sie den folgenden Befehl ausführen:
Die Ausgabe sieht ähnlich wie folgt aus. Beachten Sie die Felder Nachricht
und Kapazität
sowie die Edition
.
Die obige Ausgabe wird Ihnen auch mitteilen, wann die Lizenz im Feld Ablaufzeitstempel
abläuft, und den Geltungsbereich
(Cluster
in diesem Fall). Sie können sich für einen lizenztypischen Cluster oder eine lizenztypische Namespace-Option entscheiden.
Erneuerung der TVK-Anwendungslizenz
Um die Lizenz zu erneuern, müssen Sie eine neue von der Trilio-Website anfordern, indem Sie zur Lizenzierungsseite navigieren, um die alte zu ersetzen. Nachdem Sie das Formular ausgefüllt haben, sollten Sie das Lizenz-YAML-Manifest erhalten, das mit kubectl
auf Ihren Cluster angewendet werden kann. Die folgenden Befehle gehen davon aus, dass TVK im Standard-Namespace tvk
installiert ist (ersetzen Sie bitte die Platzhalter <>
entsprechend, wo erforderlich):
# Informationen über eine bestimmte Lizenz aus dem Namespace `tvk` abrufen
Im nächsten Schritt erfahren Sie, wie Sie das Speicher-Backend für TrilioVault definieren, um Backups zu speichern, das als Ziel bezeichnet wird.
Schritt 2 – Erstellen eines TrilioVault-Ziels zur Speicherung von Backups
A typical Target
definition looks like:
TrilioVault muss zunächst wissen, wo Ihre Backups gespeichert werden sollen. TrilioVault bezieht sich auf das Speicher-Backend, indem es den Begriff target
verwendet, und es wird über eine spezielle CRD mit dem Namen Target
verwaltet. Die folgenden Zieltypen werden unterstützt: S3
und NFS
. Für DigitalOcean und den Zweck des Starter Kits ist es sinnvoll, auf den Speichertyp S3
zu setzen, da er kostengünstig und skalierbar ist. Um von einem verbesserten Schutzniveau zu profitieren, können Sie mehrere Zieltypen (für sowohl S3
als auch NFS
) erstellen, sodass Ihre Daten an mehreren Orten sicher aufbewahrt werden und somit eine Backup-Redundanz erreicht wird.
- In dieser Konfiguration,
spec.type
: Typ des Ziels für die Backup-Speicherung (S3 ist ein Objektspeicher).spec.vendor
: Drittanbieter-Speicheranbieter, der das Ziel hostet (für DigitalOcean Spaces müssen Sie anstelle vonAWS
Other
verwenden).spec.enableBrowsing
: Aktivieren des Browsens für das Ziel.spec.objectStoreCredentials
: Definiert erforderliche Anmeldeinformationen (übercredentialSecret
) zum Zugriff auf denS3
-Speicher sowie andere Parameter wie Bucket-Region und -Namen.
spec.thresholdCapacity
: Maximale Schwellenkapazität zur Speicherung von Backup-Daten.
# Wert muss base64-codiert sein
Beachten Sie, dass der Name des Secrets trilio-s3-target
ist und es vom Feld spec.objectStoreCredentials.credentialSecret
des zuvor erklärten Target CRD referenziert wird. Das Secret
kann sich im selben Namespace
befinden, in dem TrilioVault installiert wurde (Standardwert ist tvk), oder in einem anderen Namespace Ihrer Wahl. Stellen Sie nur sicher, dass Sie den Namespace korrekt referenzieren. Andererseits stellen Sie bitte sicher, dass Sie den Namespace, in dem Sie TrilioVault-Secrets speichern, aus Sicherheitsgründen über RBAC schützen.
Schritte zum Erstellen eines Ziels für TrilioVault:
Zuerst wechseln Sie in das Verzeichnis, in dem das Git-Repository des Starter Kits auf Ihrem lokalen Rechner geklont wurde:
Dann erstellen Sie das Kubernetes-Secret, das Ihre Ziel-S3-Bucket-Anmeldeinformationen enthält (ersetzen Sie bitte die Platzhalter <>
entsprechend):
–from-literal=accessKey=„<IHR_DO_SPACES_ACCESS_KEY_HIER>“ \
–from-literal=secretKey=„<IHR_DO_SPACES_SECRET_KEY_HIER>“
Dann öffnen und inspizieren Sie die Zielmanifestdatei im Starter-Kit-Repository mit einem Editor Ihrer Wahl (vorzugsweise mit YAML-Lint-Unterstützung).
Jetzt ersetzen Sie bitte die <>
-Platzhalter entsprechend für Ihren DO Spaces Trilio-Bucket, wie bucketName
, region
, url
und credentialSecret
.
Speichern Sie schließlich die Manifestdatei und erstellen Sie das Zielobjekt mit kubectl
:
NAME TYPE THRESHOLD CAPACITY VENDOR STATUS BROWSING ENABLED
trilio-s3-target ObjectStore 10Gi Other Available
Als nächstes wird TrilioVault einen Arbeitsjob namens trilio-s3-target-validator
starten, der für die Validierung Ihres S3-Buckets (z. B. Verfügbarkeit, Berechtigungen usw.) verantwortlich ist. Wenn der Job erfolgreich abgeschlossen wird, wird der Bucket als gesund oder verfügbar betrachtet und die Ressource des Jobs trilio-s3-target-validator
wird anschließend gelöscht. Wenn etwas schief geht, bleibt der S3-Zielvalidierungsjob aktiv, sodass Sie die Protokolle überprüfen und das mögliche Problem finden können.
Bitte überprüfen Sie nun, ob das zuvor erstellte Zielressource gesund ist:
# Die Ausgabe sieht ähnlich aus wie:
...
INFO:root:2021-11-24 09:06:50.595166: waiting for mount operation to complete.
INFO:root:2021-11-24 09:06:52.595772: waiting for mount operation to complete.
ERROR:root:2021-11-24 09:06:54.598541: timeout exceeded, not able to mount within time.
ERROR:root:/triliodata is not a mountpoint. We can't proceed further.
Traceback (most recent call last):
File "/opt/tvk/datastore-attacher/mount_utility/mount_by_target_crd/mount_datastores.py", line 56, in main
utilities.mount_datastore(metadata, datastore.get(constants.DATASTORE_TYPE), base_path)
File "/opt/tvk/datastore-attacher/mount_utility/utilities.py", line 377, in mount_datastore
mount_s3_datastore(metadata_list, base_path)
File "/opt/tvk/datastore-attacher/mount_utility/utilities.py", line 306, in mount_s3_datastore
wait_until_mount(base_path)
File "/opt/tvk/datastore-attacher/mount_utility/utilities.py", line 328, in wait_until_mount
base_path))
Exception: /triliodata is not a mountpoint. We can't proceed further.
...
#trilio-s3-target-validator-tio99a-6lz4q 1/1 Ausführung 0 104s
# Jetzt Logs-Daten abrufen
Die Ausgabe wird diese Ausnahme sein:
Als nächstes werden Sie die TVK-Webkonsole entdecken, die eine nützliche Ergänzung ist, um Ihnen bei der einfachen Verwaltung von Backup- und Wiederherstellungsvorgängen sowie vielen anderen zu helfen.
Schritt 3 – Kennenlernen der TVK-Web-Management-Konsole
Auch wenn Sie Backup- und Wiederherstellungsvorgänge vollständig über die CLI über kubectl
und CRDs verwalten können, bietet TVK eine Web-Management-Konsole, um dieselben Operationen über die GUI auszuführen. Die Management-Konsole vereinfacht gängige Aufgaben durch Point-and-Click-Operationen, bietet eine bessere Visualisierung und Inspektion von TVK-Clusterobjekten sowie die Erstellung von Notfallwiederherstellungsplänen (oder DRPs).
Die in Schritt 1 – Installieren von TrilioVault für Kubernetes behandelte Helm-basierte Installation hat bereits die erforderlichen Komponenten für die Web-Management-Konsole installiert.
Zugriff auf die TVK-Webverwaltungskonsole erhalten
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
k8s-triliovault-admission-webhook ClusterIP 10.245.202.17 <none> 443/TCP 13m
k8s-triliovault-ingress-nginx-controller NodePort 10.245.192.140 <none> 80:32448/TCP,443:32588/TCP 13m
k8s-triliovault-ingress-nginx-controller-admission ClusterIP 10.3.20.89 <none> 443/TCP 13m
k8s-triliovault-web ClusterIP 10.245.214.13 <none> 80/TCP 13m
k8s-triliovault-web-backend ClusterIP 10.245.10.221 <none> 80/TCP 13m
triliovault-operator-k8s-triliovault-operator-webhook-service ClusterIP 10.245.186.59 <none> 443/TCP 16m
Um Zugriff auf die Konsole zu erhalten und die angebotenen Funktionen zu erkunden, müssen Sie den Ingress-Controller-Dienst für TVK weiterleiten.
Die Ausgabe ähnelt dem Folgenden. Suchen Sie nach der Zeile k8s-triliovault-ingress-nginx-controller
und beachten Sie, dass er auf Port 80
in der Spalte PORT(S)
hört.
127.0.0.1 tvk-doks.com
TVK verwendet einen Nginx Ingress Controller, um den Verkehr zu den Diensten der Management-Webkonsole zu leiten. Die Routen sind hostbasiert, und der Hostname ist tvk-doks.com
, wie in der Helm-Values-Datei des Starter Kits definiert:
# Der Hostname, der verwendet wird, um auf die Webkonsole über den TVK Ingress Nginx Controller zuzugreifen
Zuletzt exportieren Sie die Datei kubeconfig
für Ihren DOKS-Cluster. Dieser Schritt ist erforderlich, damit die Webkonsole Sie authentifizieren kann.
# Liste der verfügbaren Cluster
# Speichern Sie die Clusterkonfiguration in YAML
Wenn Sie nur einen Cluster haben, führen Sie den folgenden Befehl aus:
Nachdem Sie diese Schritte befolgt haben, können Sie auf die Konsole in Ihrem Webbrowser zugreifen, indem Sie zu gehen: http://tvk-doks.com:8080. Wenn Sie nach der kubeconfig
-Datei gefragt werden, wählen Sie bitte diejenige aus, die Sie im letzten Befehl oben erstellt haben.
Bitte bewahren Sie die generierte kubeconfig
-Datei sicher auf, da sie sensible Daten enthält.
- Erkunden der Benutzeroberfläche der TVK-Webkonsole
- Erkunden Sie jeden Abschnitt links, wie:
- Cluster-Management: Hier wird die Liste der primären und anderen Cluster angezeigt, die TVK-Instanzen haben und dem primären OVH-Cluster mithilfe der Multi-Cluster-Verwaltungsfunktion hinzugefügt wurden.
- Backup & Wiederherstellung: Dies ist das Hauptdashboard, das Ihnen einen allgemeinen Überblick über den gesamten Cluster gibt, wie entdeckte Namespaces, Anwendungen, Backup-Planliste, Ziele, Hooks, Richtlinien usw.
Überwachung: Hier gibt es zwei Optionen – TrilioVault-Überwachung und Velero-Überwachung, wenn der Benutzer Velero auf seinem OVH-Cluster konfiguriert hat.
Katastrophenwiederherstellung: Ermöglicht Ihnen das Verwalten und Durchführen von Katastrophenwiederherstellungsoperationen.
Katastrophenwiederherstellung: Ermöglicht Ihnen das Verwalten und Durchführen von Katastrophenwiederherstellungsoperationen.
Sie können auch das zuvor erstellte S3-Ziel anzeigen, indem Sie zu Backup & Wiederherstellung -> Ziele -> <Namespace> tvk aus dem Dropdown-Menü oben navigieren.
Um weiter zu gehen, können Sie das Ziel durchsuchen und die verfügbaren Backups auflisten, indem Sie auf die Schaltfläche Aktionen rechts klicken und dann die Option Browser starten aus dem Popup-Menü auswählen. Damit dies funktioniert, muss das Ziel das Flag enableBrowsing
auf true
gesetzt haben.
Weitere Informationen und verfügbare Funktionen finden Sie in der offiziellen Dokumentation zur TVK Web Management Console User Interface.
Anschließend erfahren Sie, wie Sie Backup- und Wiederherstellungsoperationen für spezifische Anwendungsfälle durchführen können.
Schritt 4 – Beispiel für Namensraum-Backup und -Wiederherstellung
In diesem Schritt lernen Sie, wie Sie ein einmaliges Backup für einen gesamten Namensraum (ambassador
in diesem Fall) von Ihrem DOKS-Cluster erstellen und es anschließend wiederherstellen, um sicherzustellen, dass alle Ressourcen neu erstellt werden. TVK verfügt über eine Funktion, die es Ihnen ermöglicht, Backups auf einer höheren Ebene als nur Namensräume durchzuführen.
- Erstellen des Ambassador Helm Release-Backups
- Um Backups für eine einzelne Anwendung auf der Namensraumebene (oder Helm-Release) durchzuführen, ist zunächst ein BackupPlan gefolgt von einer Backup-CRD erforderlich. Ein BackupPlan ist eine Definition von ‚was‘, ‚wo‘, ‚nach‘ und ‚wie‘ des Backup-Vorgangs, führt jedoch das eigentliche Backup nicht durch. Die Backup-CRD ist für das Auslösen des tatsächlichen Backup-Vorgangs verantwortlich, wie es von der BackupPlan-Spezifikation vorgegeben wird.
- In dieser Konfiguration
A typical Backup CRD looks like below:
spec.backupConfig.target.name
: gibt an, welchen Zielnamen TVK zum Speichern von Backups verwenden soll.
spec.backupConfig.target.namespace
: gibt an, in welchem Namensraum das Ziel erstellt wurde.spec.backupComponents
: Definiert eine Liste von Ressourcen, die gesichert werden sollen.
In dieser Konfiguration,
spec.type
: Legt den Sicherungstyp fest.
spec.backupPlan
: Legt den BackupPlan fest, den diese Sicherung verwenden soll.
Schritte zur Initiierung des Ambassador Helm Einmal-Backups:
Zuerst stellen Sie sicher, dass der Ambassador Edge Stack in Ihrem Cluster bereitgestellt ist, indem Sie den Anweisungen im Ambassador Ingress Tutorial folgen.
Dann wechseln Sie zum Verzeichnis, in das das Starter Kit Git-Repository auf Ihrem lokalen Rechner geklont wurde:
Danach öffnen und inspizieren Sie die Ambassador BackupPlan und Backup Manifestdateien, die im Starter Kit Repository mit einem Editor Ihrer Wahl bereitgestellt wurden (vorzugsweise mit YAML-Lint-Unterstützung).
NAME TARGET ... STATUS
ambassador-helm-release-backup-plan trilio-s3-target ... Available
Zuletzt erstellen Sie die BackupPlan und Backup Ressourcen mit kubectl
.
Jetzt inspizieren Sie den BackupPlan-Status (mit Ausrichtung auf die ambassador
Helm-Veröffentlichung) mit kubectl
:
NAME BACKUPPLAN BACKUP TYPE STATUS ...
ambassador-helm-release-full-backup ambassador-helm-release-backup-plan Full InProgress ...
Die Ausgabe ähnelt dem Folgenden. Beachten Sie den Wert der Spalte STATUS
, der auf Verfügbar
gesetzt sein sollte.
Anschließend überprüfen Sie den Status des Backup-Objekts mit kubectl
:
NAME BACKUPPLAN BACKUP TYPE STATUS ... PERCENTAGE
ambassador-helm-release-full-backup ambassador-helm-release-backup-plan Full Available ... 100
Die Ausgabe ähnelt dem Folgenden. Beachten Sie den Wert der Spalte STATUS
, der auf InBearbeitung
gesetzt sein sollte, sowie den Wert von BACKUP TYPE
, der auf Vollständig
gesetzt ist.
Nachdem alle Botschafter Helm Release-Komponenten erfolgreich auf das S3
-Ziel hochgeladen wurden, sollten Sie diese Ergebnisse erhalten:
2021-11-25 07:04 28 s3://trilio-starter-kit/6c68af15-5392-45bb-a70b-b26a93605bd9/
2021-11-25 07:04 28 s3://trilio-starter-kit/6c68af15-5392-45bb-a70b-b26a93605bd9/5ebfffb5-442a-455c-b0de-1db98e18b425/
2021-11-25 07:04 311 s3://trilio-starter-kit/6c68af15-5392-45bb-a70b-b26a93605bd9/5ebfffb5-442a-455c-b0de-1db98e18b425/backup-namespace.json.manifest.00000004
2021-11-25 07:04 302 s3://trilio-starter-kit/6c68af15-5392-45bb-a70b-b26a93605bd9/5ebfffb5-442a-455c-b0de-1db98e18b425/backup.json.manifest.00000004
2021-11-25 07:04 305 s3://trilio-starter-kit/6c68af15-5392-45bb-a70b-b26a93605bd9/5ebfffb5-442a-455c-b0de-1db98e18b425/backupplan.json.manifest.00000004
2021-11-25 07:04 28 s3://trilio-starter-kit/6c68af15-5392-45bb-a70b-b26a93605bd9/5ebfffb5-442a-455c-b0de-1db98e18b425/custom/
2021-11-25 07:04 28 s3://trilio-starter-kit/6c68af15-5392-45bb-a70b-b26a93605bd9/5ebfffb5-442a-455c-b0de-1db98e18b425/custom/metadata-snapshot/
2021-11-25 07:04 330 s3://trilio-starter-kit/6c68af15-5392-45bb-a70b-b26a93605bd9/5ebfffb5-442a-455c-b0de-1db98e18b425/custom/metadata-snapshot/metadata.json.manifest.00000002
...
# Die Ausgabe sieht ähnlich aus wie (beachten Sie, dass der `STATUS` auf `Verfügbar` geändert wurde und `PERCENTAGE` `100` beträgt)
Wenn die Ausgabe so aussieht, haben Sie das Botschafter Helm-Release erfolgreich gesichert. Sie können nun überprüfen, wie TrilioVault Metadaten für Kubernetes speichert, indem Sie den Inhalt des TrilioVault S3-Buckets auflisten. Sie können beispielsweise s3cmd verwenden:
ambassador-helm-release-full-backup-metamover-mg9gl0--1-2d6wx 1/1 Running 0 4m32s
Die Ausgabe sieht ähnlich wie folgt aus. Beachten Sie, dass die Liste die JSON-Manifeste und UIDs enthält, die Kubernetes-Objekte darstellen.
Falls das Backup nicht verfügbar wird, können Sie die Protokolle aus dem metamover
-Pod inspizieren, um das Problem zu finden:
...
{"component":"meta-mover","file":"pkg/metamover/snapshot/parser/commons.go:1366","func":"github.com/trilioData/k8s-triliovault/pkg/metamover/snapshot/parser.(*Component).ParseForDataComponents","level":"info","msg":"Parsing data components of resource rbac.authorization.k8s.io/v1, Kind=ClusterRoleBinding: [edge-stack]","time":"2022-06-14T06:20:56Z"}
{"component":"meta-mover","file":"pkg/metamover/snapshot/parser/commons.go:1366","func":"github.com/trilioData/k8s-triliovault/pkg/metamover/snapshot/parser.(*Component).ParseForDataComponents","level":"info","msg":"Parsing data components of resource rbac.authorization.k8s.io/v1, Kind=RoleBinding: [edge-stack-agent-config]","time":"2022-06-14T06:20:56Z"}
...
Die Ausgabe sieht ähnlich aus wie:
Jetzt die Protokolldaten abrufen:
Die Ausgabe sieht ähnlich wie folgt aus.
Zuletzt können Sie überprüfen, ob das Backup auch im Web-Portal verfügbar ist, indem Sie zu Ressourcenverwaltung -> Botschafter -> Backup-Pläne navigieren. Beachten Sie, dass es sich im Verfügbar
-Zustand befindet und dass das Botschafter Helm-Release im Unteransicht Komponentendetails gesichert wurde.
Löschen des Botschafter Helm Release und der Ressourcen
Nun, fahren Sie fort und simulieren Sie eine Katastrophe, indem Sie die ambassador
-Helm-Freigabe absichtlich löschen:
Als nächstes überprüfen Sie, ob die Namespace-Ressourcen gelöscht wurden (die Liste sollte leer sein):
- Zum Schluss überprüfen Sie, ob der Endpunkt der
echo
– undquote
-Backend-DiensteDOWN
ist. Bitte beachten Sie Erstellen der Ambassador Edge Stack-Backend-Dienste bezüglich der im Starter Kit-Tutorial verwendeten Backend-Anwendungen. Sie könnencurl
zum Testen verwenden (oder Ihren Webbrowser): - Wiederherstellen des Ambassador Helm Release-Backups
- Wichtig
Wenn Sie denselben Namespace wiederherstellen, stellen Sie sicher, dass die ursprünglichen Anwendungskomponenten entfernt wurden. Insbesondere der PVC der Anwendung wird gelöscht.
Wenn Sie eine Wiederherstellung in ein anderes Cluster durchführen (Migrationsszenario), stellen Sie sicher, dass TrilioVault für Kubernetes auch im entfernten Namespace/Cluster läuft. Um in ein neues Cluster wiederherzustellen (wo das Backup-CR nicht vorhanden ist), muss source.type
auf location
gesetzt werden. Bitte beachten Sie den Bereich zur Definition von benutzerdefinierten Ressourcen für die Wiederherstellung, um ein Wiederherstellungsbeispiel nach Standort zu sehen.
- Wenn Sie den Namespace
ambassador
löschen, wird die mit dem Ambassador-Dienst verbundene Lastenausgleichsressource ebenfalls gelöscht. Wenn Sie also den Dienstambassador
wiederherstellen, wird der LB von DigitalOcean neu erstellt. Das Problem besteht darin, dass Sie eine NEUE IP-Adresse für Ihren LB erhalten, daher müssen Sie dieA-Records
anpassen, um den Datenverkehr in Ihre auf dem Cluster gehosteten Domains zu leiten. - Um ein bestimmtes Backup wiederherzustellen, müssen Sie eine
Restore
-CRD erstellen. Eine typische Wiederherstellungs-CRD sieht wie folgt aus: - In dieser Konfiguration,
spec.source.type
: Gibt an, welcher Backup-Typ wiederhergestellt werden soll.
spec.source.backup
: Enthält einen Verweis auf das Backup-Objekt, das wiederhergestellt werden soll.
spec.skipIfAlreadyExists
: Gibt an, ob die Wiederherstellung einer Ressource übersprungen werden soll, wenn sie bereits im wiederhergestellten Namespace vorhanden ist.
Wiederherstellen ermöglicht es Ihnen, das letzte erfolgreiche Backup für eine Anwendung wiederherzustellen. Es wird verwendet, um einen einzelnen Namensraum oder Helm-Release wiederherzustellen, der durch die Backup-CRD geschützt ist. Die Backup-CRD wird durch ihren Namen `ambassador-helm-release-full-backup` identifiziert.
Zuerst, inspizieren Sie das Beispiel für die Restore-CRD aus dem Starter Kit Git-Repository:
NAME STATUS DATA SIZE START TIME END TIME PERCENTAGE COMPLETED DURATION
ambassador-helm-release-restore Completed 0 2021-11-25T15:06:52Z 2021-11-25T15:07:35Z 100 43.524191306s
Dann erstellen Sie die Restore-Ressource mit `kubectl`:
Zum Schluss inspizieren Sie den Status des Restore-Objekts:
Die Ausgabe sieht ähnlich aus wie folgt. Beachten Sie die `STATUS`-Spalte, die auf `Completed` gesetzt ist, sowie die `PERCENTAGE COMPLETED` auf `100`.
Wenn die Ausgabe so aussieht, dann ist der Wiederherstellungsprozess für das `ambassador` Helm-Release erfolgreich abgeschlossen.
NAME READY STATUS RESTARTS AGE
pod/ambassador-5bdc64f9f6-42wzr 1/1 Running 0 9m58s
pod/ambassador-5bdc64f9f6-nrkzd 1/1 Running 0 9m58s
pod/ambassador-agent-bcdd8ccc8-ktmcv 1/1 Running 0 9m58s
pod/ambassador-redis-64b7c668b9-69drs 1/1 Running 0 9m58s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/ambassador LoadBalancer 10.245.173.90 157.245.23.93 80:30304/TCP,443:30577/TCP 9m59s
service/ambassador-admin ClusterIP 10.245.217.211 <none> 8877/TCP,8005/TCP 9m59s
service/ambassador-redis ClusterIP 10.245.77.142 <none> 6379/TCP 9m59s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/ambassador 2/2 2 2 9m59s
deployment.apps/ambassador-agent 1/1 1 1 9m59s
deployment.apps/ambassador-redis 1/1 1 1 9m59s
NAME DESIRED CURRENT READY AGE
replicaset.apps/ambassador-5bdc64f9f6 2 2 2 9m59s
replicaset.apps/ambassador-agent-bcdd8ccc8 1 1 1 9m59s
replicaset.apps/ambassador-redis-64b7c668b9 1 1 1 9m59s
Überprüfen der Anwendungsintegrität nach der Wiederherstellung
Überprüfen Sie, dass alle Ressourcen im Namensraum `ambassador` vorhanden und aktiv sind:
NAME HOSTNAME STATE PHASE COMPLETED PHASE PENDING AGE
echo-host echo.starter-kit.online Ready 11m
quote-host quote.starter-kit.online Ready 11m
Die Ausgabe sieht ähnlich aus wie folgt:
Holen Sie sich Ambassador-Hosts:
NAME SOURCE HOST SOURCE PREFIX DEST SERVICE STATE REASON
ambassador-devportal /documentation/ 127.0.0.1:8500
ambassador-devportal-api /openapi/ 127.0.0.1:8500
ambassador-devportal-assets /documentation/(assets|styles)/(.*)(.css) 127.0.0.1:8500
ambassador-devportal-demo /docs/ 127.0.0.1:8500
echo-backend echo.starter-kit.online /echo/ echo.backend
quote-backend quote.starter-kit.online /quote/ quote.backend
Die Ausgabe sieht ähnlich aus wie folgt. `STATE` sollte `Ready` sein und die `HOSTNAME`-Spalte sollte auf den vollständig qualifizierten Hostnamen verweisen.
Holen Sie sich Ambassador-Mappings:
Die Ausgabe sieht ähnlich wie folgt aus. Beachten Sie den echo-backend
, der dem Host echo.starter-kit.online
und dem Quellpräfix /echo/
zugeordnet ist, ebenso wie quote-backend
.
Jetzt müssen Sie Ihre DNS A Records
aktualisieren, da die Ressource des DigitalOcean-Lastenausgleichs neu erstellt wurde und eine neue externe IP zugewiesen bekommen hat.
Zuletzt prüfen Sie, ob die Backend-Anwendungen ebenfalls auf HTTP-Anfragen antworten. Bitte beachten Sie Erstellen der Ambassador Edge Stack Backend-Services bezüglich der im Starter-Kit-Tutorial verwendeten Backend-Anwendungen.
Der nächste Schritt befasst sich mit der Sicherung und Wiederherstellung des gesamten Clusters.
Schritt 5 – Beispiel für die Sicherung und Wiederherstellung des gesamten Clusters
A typical ClusterBackupPlan
manifest targeting multiple namespaces looks like this:
In diesem Schritt simulieren Sie ein Szenario für die Wiederherstellung nach einem Desaster. Der gesamte DOKS-Cluster wird gelöscht und dann werden die wichtigen Anwendungen aus einem früheren Backup wiederhergestellt.
Erstellen des Backups des DOKS-Clusters
Die Hauptidee hier ist, ein DOKS-Cluster-Backup durchzuführen, indem alle wichtigen Namensräume einbezogen werden, die Ihre wesentlichen Anwendungen und Konfigurationen enthalten.
Beachten Sie, dass kube-system
(oder andere DOKS-Cluster-bezogene Namensräume) nicht in der Liste enthalten sind. Normalerweise sind diese nicht erforderlich, es sei denn, es gibt einen speziellen Fall, der erfordert, dass einige Einstellungen auf dieser Ebene persistiert werden müssen.
Ändern Sie zunächst das Verzeichnis, in dem das Git-Repository des Starter Kits auf Ihrem lokalen Rechner geklont wurde:
Öffnen und inspizieren Sie dann die bereitgestellten Manifestdateien ClusterBackupPlan
und ClusterBackup
im Starter Kit Repository mit einem Editor Ihrer Wahl (vorzugsweise mit YAML-Lint-Unterstützung).
NAME TARGET ... STATUS
starter-kit-cluster-backup-plan trilio-s3-target ... Available
Erstellen Sie abschließend die Ressourcen ClusterBackupPlan
und ClusterBackup
mit kubectl
:
Inspektieren Sie nun den Status des ClusterBackupPlan
mit kubectl
:
NAME BACKUPPLAN BACKUP TYPE STATUS ... PERCENTAGE COMPLETE
starter-kit-cluster-backup starter-kit-cluster-backup-plan Full Available ... 100
Die Ausgabe sieht ähnlich aus wie folgt. Beachten Sie den Wert in der Spalte STATUS
, der auf Verfügbar
gesetzt sein sollte.
Überprüfen Sie als nächstes den Status des ClusterBackup
mit kubectl
:
Die Ausgabe sieht ähnlich aus wie folgt. Beachten Sie den Wert in der Spalte STATUS
, der ebenfalls auf Verfügbar
gesetzt sein sollte, sowie den Wert von PROZENTUALER ABSCHLUSS
, der auf 100
gesetzt ist.
Wenn die Ausgabe wie oben aussieht, wurden alle wichtigen Anwendungsnamensräume erfolgreich gesichert.
Es kann eine Weile dauern, bis das vollständige Cluster-Backup abgeschlossen ist, je nachdem, wie viele Namensräume und zugehörige Ressourcen am Prozess beteiligt sind.
Sie können auch das Hauptdashboard der Webkonsole öffnen und das Multi-Namespace-Backup überprüfen (achten Sie darauf, wie alle wichtigen Namespaces, die gesichert wurden, in grüner Farbe hervorgehoben sind, in einer Wabenstruktur):
Neuerstellen des DOKS-Clusters und Wiederherstellen von Anwendungen
Ein wichtiger Aspekt, den Sie im Auge behalten sollten, ist, dass jedes Mal, wenn Sie einen DOKS-Cluster zerstören und dann wiederherstellen, auch ein neuer Lastenausgleicher mit einer neuen externen IP-Adresse erstellt wird, wenn TVK Ihren Ingress-Controller wiederherstellt. Stellen Sie daher sicher, dass Sie Ihre DigitalOcean-DNS-A-Records
entsprechend aktualisieren.
Löschen Sie jetzt den gesamten DOKS-Cluster (stellen Sie sicher, dass Sie die Platzhalter <>
entsprechend ersetzen):
Als nächstes erstellen Sie den Cluster neu, wie in Einrichten von DigitalOcean Kubernetes beschrieben.
Um die Wiederherstellung durchzuführen, müssen Sie die TVK-Anwendung installieren, wie in Schritt 1 – Installation von TrilioVault für Kubernetes beschrieben. Es ist wichtig, die gleiche Helm Chart-Version zu verwenden.
Nachdem die Installation erfolgreich abgeschlossen wurde, konfigurieren Sie das TVK-Ziel gemäß Schritt 2 – Erstellen eines TrilioVault-Ziels zum Speichern von Backups und weisen Sie es auf denselben S3-Bucket
hin, in dem sich Ihre Backup-Daten befinden. Stellen Sie außerdem sicher, dass das Zielbrowsen
aktiviert ist.
Als Nächstes überprüfen und aktivieren Sie eine neue Lizenz gemäß dem Abschnitt TrilioVault Anwendungs Lizenzierung.
Um Zugriff auf die Benutzeroberfläche der Webkonsole zu erhalten, konsultieren Sie bitte den Abschnitt Zugriff auf die TVK-Webverwaltungskonsole erhalten.
Anschließend navigieren Sie zu Ressourcenverwaltung -> TVK-Namespace -> Ziele (im Falle des Starter-Kits ist der TVK-Namespace tvk
):
Weiterhin durchsuchen Sie das Ziel und listen die verfügbaren Backups auf, indem Sie auf die Schaltfläche Aktionen klicken. Wählen Sie dann die Option Browser starten aus dem Popup-Menü. Damit dies funktioniert, muss die enableBrowsing
-Flag auf true
gesetzt sein.
Klicken Sie nun auf das Element starter-kit-cluster-backup-plan in der Liste und klicken Sie dann auf das Element starter-kit-cluster-backup im rechten Unterfenster, um es zu erweitern:
Um den Wiederherstellungsprozess zu starten, klicken Sie auf die Schaltfläche Wiederherstellen.
Überprüfen des Zustands von DOKS-Clusteranwendungen
Zunächst überprüfen Sie alle Kubernetes-Ressourcen im Cluster.
Dann stellen Sie sicher, dass Ihre DNS-A-Einträge aktualisiert sind, um auf die externe IP Ihres neuen Lastenausgleichers zu verweisen.
Außerdem sollten die Backend-Anwendungen auch auf HTTP-Anfragen antworten. Bitte beachten Sie die Anleitung zum Erstellen der Backend-Services des Ambassador Edge Stack im Starter-Kit-Tutorial.
Im nächsten Schritt erfahren Sie, wie Sie geplante (oder automatische) Backups für Ihre DOKS-Clusteranwendungen durchführen können.
Automatische Backups gemäß einem Zeitplan zu erstellen, ist eine wirklich nützliche Funktion. Sie ermöglicht es Ihnen, die Zeit zurückzudrehen und das System auf einen früheren funktionierenden Zustand wiederherzustellen, wenn etwas schief geht. Dieser Abschnitt bietet ein Beispiel für ein automatisches Backup im 5-Minuten-Intervall (der Namespace kube-system
wurde ausgewählt).
Zuerst müssen Sie eine Policy
-CRD vom Typ Schedule
erstellen, die den Sicherungsplan im Cron-Format definiert (genauso wie bei Linux
cron). Zeitplanrichtlinien können für BackupPlan
– oder ClusterBackupPlan
-CRDs verwendet werden. Eine typische Zeitplanrichtlinien-CRD sieht wie folgt aus (definiert einen Zeitplan von 5 Minuten
):
# trigger alle 5 Minuten
Als nächstes können Sie die Zeitplanrichtlinie auf eine ClusterBackupPlan
-CRD anwenden, wie im folgenden Beispiel gezeigt:
Sie können feststellen, dass es sich um eine grundlegende ClusterBackupPlan
-CRD handelt, die über das Feld spec.backupConfig.schedulePolicy
auf die zuvor definierte Policy
-CRD verweist. Sie können separate Richtlinien für vollständige oder inkrementelle Sicherungen erstellen, daher können fullBackupPolicy
oder incrementalBackupPolicy
in der Spezifikation angegeben werden.
Bitte erstellen Sie nun die Zeitplan-Policy
mithilfe des im Starter Kit-Tutorial bereitgestellten Beispieldokuments.
NAME POLICY DEFAULT
scheduled-backup-every-5min Schedule false
Wechseln Sie das Verzeichnis zum Ort, an dem das Git-Repository des Starter Kits auf Ihrem lokalen Rechner geklont wurde.
Erstellen Sie abschließend die Ressourcen für die geplanten Backups im kube-system
-Namespace:
# Erstellen Sie zuerst den Sicherungsplan für den Namespace kube-system
NAME TARGET ... FULL BACKUP POLICY STATUS
kube-system-ns-backup-plan-5min-schedule trilio-s3-target ... scheduled-backup-every-5min Available
# Erstellen und Auslösen des geplanten Backups für den Namespace kube-system
Überprüfen Sie den Status des geplanten Sicherungsplans für kube-system
:
NAME BACKUPPLAN BACKUP TYPE STATUS ...
kube-system-ns-full-backup-scheduled kube-system-ns-backup-plan-5min-schedule Full Available ...
Die Ausgabe sieht ähnlich aus wie folgt. Beachten Sie den Wert FULL BACKUP POLICY
, der auf die zuvor erstellte Ressource für den Sicherungsplan scheduled-backup-every-5min
gesetzt ist, sowie den STATUS
, der Available
sein sollte.
Überprüfen Sie den Status der geplanten Sicherung für kube-system
:
Die Ausgabe sieht ähnlich aus wie folgt. Beachten Sie den Wert BACKUPPLAN
, der auf den zuvor erstellten Sicherungsplan verweist, sowie den STATUS
, der Available
sein sollte.
Jetzt können Sie überprüfen, ob Sicherungen in regelmäßigen Abständen (alle 5 Minuten) durchgeführt werden, indem Sie die Sicherungsressource des Clusters abfragen und die Spalte START TIME
überprüfen (kubectl get clusterbackup -n tvk
). Es sollte den 5-Minuten-Abstand widerspiegeln, wie im Bild unten hervorgehoben:
Im nächsten Schritt erfahren Sie, wie Sie eine Aufbewahrungspolitik für Ihre Sicherungen einrichten.
Schritt 7 – Aufbewahrungspolitik für Sicherungen
Die Aufbewahrungspolitik ermöglicht es Ihnen, die Anzahl der zu behaltenden Sicherungen und den Zeitplan zum Löschen von Sicherungen gemäß den Compliance-Anforderungen festzulegen. Die Aufbewahrungspolitik CRD bietet eine einfache YAML-Spezifikation, um die Anzahl der zu behaltenden Sicherungen in Tagen, Wochen, Monaten, Jahren, die neueste Sicherung usw. festzulegen.
- Verwendung von Aufbewahrungspolicen
- Aufbewahrungspolicen können für die CRDs
BackupPlan
oderClusterBackupPlan
verwendet werden. Ein typisches Manifest für einePolicy
-Aufbewahrung sieht wie folgt aus: - Die oben genannte Aufbewahrungspolice wird wie folgt übersetzt:
- Jede Woche wird eine Sicherung am Mittwoch aufbewahrt.
Jeden Monat wird eine Sicherung am 15. Tag aufbewahrt.
A typical ClusterBackupPlan
example configuration that has a retention set looks like:
Jedes Jahr wird im März eine Sicherung aufbewahrt.
Insgesamt sollten die 2 neuesten Sicherungen verfügbar sein.
Der grundlegende Ablauf zur Erstellung einer Ressource für eine Aufbewahrungspolice erfolgt genauso wie bei geplanten Sicherungen. Sie benötigen einen definierten BackupPlan
oder einen ClusterBackupPlan
CRD, um die Aufbewahrungspolice zu referenzieren, und dann einen Backup
– oder ClusterBackup
-Objekt, um den Prozess auszulösen.
Beachten Sie, dass hier ein retentionPolicy
-Feld verwendet wird, um auf die betreffende Police zu verweisen. Natürlich können Sie einen Backup-Plan haben, der beide Arten von Policen hat, sodass er geplante Backups durchführen kann und auch Aufbewahrungsstrategien berücksichtigt.
Verwendung von Bereinigungspolicen
Sie benötigen eine Möglichkeit, alle Objekte zu bereinigen, die nicht mehr verwendet werden. Dazu müssen Sie das Cleanup Policy
CRD einführen:
Die oben genannte Bereinigungsrichtlinie muss im TVK-Installationsnamespace definiert sein. Anschließend wird automatisch ein Cron-Job für Sie erstellt, der alle 30 Minuten ausgeführt wird und fehlgeschlagene Backups basierend auf dem im Feld backupdays
angegebenen Wert löscht.
Fazit
- In diesem Tutorial haben Sie gelernt, wie Sie sowohl einmalige als auch geplante Backups durchführen und alles wiederherstellen können.
- Alle im Tutorial erklärten grundlegenden Aufgaben und Operationen sollen Ihnen eine grundlegende Einführung und Verständnis dafür geben, wozu TrilioVault für Kubernetes fähig ist.
- Weitere Informationen