In einem Kubernetes-Cluster habe ich mehrere Apps im gleichen Namespace namens „default“ bereitgestellt. Eine App besteht aus einem Webserver-Pod und einem Datenbank-Pod.
So stellen Sie eine einzelne App im ursprünglichen Cluster aus einem Backup-Plan wieder herBackup für GKE?
Im Cluster habe ich mehrere ProtectedApplication
's für den Backup-Agenten definiert, damit dieser die einzelnen Anwendungen (Websites) identifizieren kann. Diese Definitionen sehen folgendermaßen aus:
kind: ProtectedApplication
apiVersion: gkebackup.gke.io/v1alpha2
metadata:
name: test
namespace: default
spec:
resourceSelection:
type: Selector
selector:
matchLabels:
app.kubernetes.io/instance: test
components:
- name: wordpress
resourceKind: Deployment
resourceNames: ["test-wordpress"]
strategy:
type: BackupAllRestoreAll
backupAllRestoreAll: {}
- name: mariadb
resourceKind: StatefulSet
resourceNames: ["test-mariadb"]
strategy:
type: BackupAllRestoreAll
backupAllRestoreAll: {}
Meine größte Sorge betrifft die Option „Konfliktbehandlung definieren“ in der Konfiguration des Wiederherstellungsplans:
Es sagt:
Alle in Konflikt stehenden Namespaces im Zielcluster (zusammen mit allen darin enthaltenen Ressourcen) werden gelöscht, bevor eine zerstörungsfreie Wiederherstellung durchgeführt wird.
Entfernt es wirklich den gesamten „Standard“-Kubernetes-Namespace, bevor nur die geschützte Anwendung wiederhergestellt wird? Ich hoffe, es entfernt nur die Ressourcen innerhalb des Kubernetes-Namespace, die dieselben Namen haben wie die im wiederherzustellenden Backup. Kann mir hier jemand weiterhelfen?
Antwort1
Gute Neuigkeiten! Beim Wiederherstellen wird nicht der gesamte Namespace entfernt. Es werden lediglich die Artefakte entfernt, die zur ProtectedApplication gehören, und dann aus dem Backup wiederhergestellt. Perfekt!