Kubernetes-Anwendungen hinzufügen und schützen
NetApp Backup and Recovery ermöglicht das Hinzufügen von Kubernetes-Anwendungen über die Web-Oberfläche oder durch Anwenden benutzerdefinierter Ressourcendateien. Anwendungen können Namespace-basiert sein, aus Standard-Kubernetes-Ressourcen bestehen, oder VM-basiert sein und aus einer oder mehreren virtuellen Maschinen bestehen.
Organisationsadministrator oder SnapCenter Administrator. "Erfahren Sie mehr über die Zugriffsrollen für NetApp Backup and Recovery" . "Erfahren Sie mehr über die Zugriffsrollen der NetApp Console für alle Dienste" .
Hinzufügen und Schützen einer neuen Kubernetes-Anwendung
Der erste Schritt zum Schutz von Kubernetes-Anwendungen besteht darin, eine Anwendung innerhalb von NetApp Backup and Recovery zu erstellen. Wenn Sie eine Anwendung erstellen, machen Sie Backup and Recovery auf die auf dem Kubernetes-Cluster laufende Anwendung aufmerksam.
Bevor Sie eine Kubernetes-Anwendung hinzufügen und schützen können, müssen Sie"Kubernetes-Workloads entdecken" .
-
Wählen Sie in NetApp Backup and Recovery*Inventar* aus.
-
Wählen Sie eine Kubernetes-Instanz und wählen Sie Anzeigen, um die mit dieser Instanz verknüpften Ressourcen anzuzeigen.
-
Wählen Sie die Registerkarte Anwendungen.
-
Wählen Sie Anwendung erstellen.
-
Geben Sie einen Namen für die Anwendung ein.
-
Wählen Sie in der Cluster-Liste den Cluster aus, der die Anwendung hostet.
-
Unter Filter wählen Sie Namespace aus, um Anwendungen nach Namespace zu filtern.
-
Wählen Sie optional eines der folgenden Felder aus, um nach den Ressourcen zu suchen, die Sie schützen möchten:
-
Zugehörige Namespaces
-
Ressourcentypen
-
Beschriftungsselektoren
-
Wählen Sie Clusterbezogene Ressourcen hinzufügen, um Ressourcen hinzuzufügen, die auf Clusterebene gelten. Wenn Sie diese einschließen, werden sie der Anwendung beim Erstellen hinzugefügt.
-
Wählen Sie optional Suchen aus, um die Ressourcen basierend auf Ihren Suchkriterien zu finden.
Backup and Recovery speichert weder die Suchparameter noch die Ergebnisse; die Parameter werden verwendet, um den ausgewählten Kubernetes-Cluster nach Ressourcen zu durchsuchen, die in die Anwendung aufgenommen werden können.
-
-
-
Backup and Recovery zeigt eine Liste der Ressourcen an, die Ihren Suchkriterien entsprechen.
-
Wenn die Liste die Ressourcen enthält, die Sie schützen möchten, wählen Sie Weiter.
-
Wählen Sie im Bereich Richtlinie optional eine vorhandene Schutzrichtlinie zum Schutz der Anwendung aus oder erstellen Sie eine neue Richtlinie. Wenn Sie keine Richtlinie auswählen, wird die Anwendung ohne Schutzrichtlinie erstellt. Du kannst"Fügen Sie eine Schutzrichtlinie hinzu" später.
-
Aktivieren und konfigurieren Sie im Bereich Prescripts und Postscripts alle Prescript- oder Postscript-Ausführungs-Hooks, die Sie vor oder nach Sicherungsvorgängen ausführen möchten. Um Präskripte oder Postskripte zu aktivieren, müssen Sie bereits mindestens ein"Ausführungs-Hook-Vorlage" .
-
Wählen Sie Erstellen.
Die Anwendung wurde erstellt und erscheint in der Liste der Anwendungen auf der Registerkarte Applications des Kubernetes-Inventars. Backup and Recovery ermöglicht den Schutz der Anwendung gemäß Ihren Einstellungen, und Sie können den Fortschritt im Bereich Monitoring überwachen.
-
Wählen Sie in NetApp Backup and Recovery*Inventar* aus.
-
Wählen Sie eine Kubernetes-Instanz und wählen Sie Anzeigen, um die mit dieser Instanz verknüpften Ressourcen anzuzeigen.
-
Wählen Sie die Registerkarte Anwendungen.
-
Wählen Sie Anwendung erstellen.
-
Geben Sie einen Namen für die Anwendung ein.
-
Wählen Sie in der Cluster-Liste den Cluster aus, der die Anwendung hostet.
-
Wählen Sie unter Filter die Option Virtuelle Maschinen, um eine VM-basierte Anwendung zu erstellen.
-
Suchen Sie nach virtuellen Maschinen, die Sie der Anwendung hinzufügen möchten, indem Sie einen Namespace auswählen und optional Label-Selektoren angeben.
Wenn Sie VMs aus der Liste auswählen, ist die Anwendungsdefinition statisch — neue VMs werden der Anwendung nicht nachträglich hinzugefügt (Sie müssen die Anwendung bearbeiten, um sie hinzuzufügen und zu schützen). Wenn Sie Label-Selektoren verwenden, können Sie keine einzelnen VMs auswählen oder die generierte Liste bearbeiten, aber jede VM, die später dem Selektor entspricht, wird automatisch hinzugefügt und geschützt. Die ausgewählten virtuellen Maschinen werden in der Liste auf der rechten Seite angezeigt.
-
Wenn die Liste die VMs enthält, die Sie schützen möchten, wählen Sie Weiter.
-
Wählen Sie im Bereich Richtlinie optional eine vorhandene Schutzrichtlinie zum Schutz der Anwendung aus oder erstellen Sie eine neue Richtlinie. Wenn Sie keine Richtlinie auswählen, wird die Anwendung ohne Schutzrichtlinie erstellt. Du kannst"Fügen Sie eine Schutzrichtlinie hinzu" später.
-
Aktivieren und konfigurieren Sie im Bereich Prescripts und Postscripts alle Prescript- oder Postscript-Ausführungs-Hooks, die Sie vor oder nach Sicherungsvorgängen ausführen möchten. Um Präskripte oder Postskripte zu aktivieren, müssen Sie bereits mindestens ein"Ausführungs-Hook-Vorlage" .
-
Wählen Sie Erstellen.
Die Anwendung wird erstellt und in der Liste der Anwendungen auf der Registerkarte Anwendungen des Kubernetes-Inventars angezeigt. Die NetApp Console ermöglicht den Schutz der Anwendung basierend auf Ihren Einstellungen und Sie können den Fortschritt im Bereich Überwachung der Sicherung und Wiederherstellung überwachen.
-
Erstellen Sie die CR-Datei der Zielanwendung:
-
Erstellen Sie die benutzerdefinierte Ressourcendatei (CR) und benennen Sie sie (zum Beispiel
my-app-name.yaml). -
Konfigurieren Sie die folgenden Attribute:
-
metadata.name: (Erforderlich) Der Name der benutzerdefinierten Anwendungsressource. Merken Sie sich den Namen, den Sie wählen, da andere für Schutzvorgänge benötigte CR-Dateien auf diesen Wert verweisen.
-
spec.includedNamespaces: (Erforderlich) Verwenden Sie Namespace und Label-Selektor, um die Namespaces und Ressourcen anzugeben, die die Anwendung verwendet. Der Anwendungsnamespace muss Teil dieser Liste sein. Der Label-Selektor ist optional und kann verwendet werden, um Ressourcen innerhalb jedes angegebenen Namespace zu filtern.
-
spec.includedClusterScopedResources: (Optional) Verwenden Sie dieses Attribut, um Cluster-Scoped-Ressourcen anzugeben, die in die Anwendungsdefinition aufgenommen werden sollen. Mit diesem Attribut können Sie diese Ressourcen anhand ihrer Gruppe, Version, Art und Bezeichnungen auswählen.
-
groupVersionKind: (Erforderlich) Gibt die API-Gruppe, die Version und die Art der clusterweiten Ressource an.
-
labelSelector: (Optional) Filtert die clusterweiten Ressourcen anhand ihrer Labels.
-
-
-
Konfigurieren Sie die folgenden Annotationen, falls erforderlich:
-
metadata.annotations.protect.trident.netapp.io/skip-vm-freeze: (Optional) Diese Annotation ist nur für Anwendungen relevant, die von virtuellen Maschinen aus definiert werden, z. B. in KubeVirt-Umgebungen, in denen das Dateisystem vor Snapshots eingefroren wird. Legen Sie fest, ob diese Anwendung während eines Snapshots auf das Dateisystem schreiben darf. Ist die Option auf true gesetzt, ignoriert die Anwendung die globale Einstellung und kann während eines Snapshots auf das Dateisystem schreiben. Ist die Option auf false gesetzt, ignoriert die Anwendung die globale Einstellung und das Dateisystem wird während eines Snapshots eingefroren. Wird die Option angegeben, die Anwendung aber keine virtuellen Maschinen in der Anwendungsdefinition hat, wird die Annotation ignoriert. Wird sie nicht angegeben, folgt die Anwendung der "Einstellung für das globale Dateisystem-Freeze".
-
protect.trident.netapp.io/protection-command: (Optional) Verwenden Sie diese Annotation, um Backup and Recovery anzuweisen, die Anwendung zu schützen oder den Schutz zu beenden. Die möglichen Werte sind
protectoderunprotect. -
protect.trident.netapp.io/protection-policy-name: (Optional) Verwenden Sie diese Annotation, um den Namen der Backup und Recovery Datensicherungsstrategie anzugeben, die Sie zum Schutz dieser Anwendung verwenden möchten. Diese Datensicherungsstrategie muss bereits in Backup und Recovery vorhanden sein.
-
-
Falls Sie diese Annotation nachträglich anwenden müssen, nachdem eine Anwendung bereits erstellt wurde, können Sie den folgenden Befehl verwenden:
kubectl annotate application -n <application CR namespace> <application CR name> protect.trident.netapp.io/skip-vm-freeze="true"
+
Beispiel YAML:
+
apiVersion: protect.trident.netapp.io/v1
kind: Application
metadata:
annotations:
protect.trident.netapp.io/skip-vm-freeze: "false"
protect.trident.netapp.io/protection-command: "protect"
protect.trident.netapp.io/protection-policy-name: "policy-name"
name: my-app-name
namespace: my-app-namespace
spec:
includedNamespaces:
- namespace: namespace-1
labelSelector:
matchLabels:
app: example-app
- namespace: namespace-2
labelSelector:
matchLabels:
app: another-example-app
includedClusterScopedResources:
- groupVersionKind:
group: rbac.authorization.k8s.io
kind: ClusterRole
version: v1
labelSelector:
matchLabels:
mylabel: test
-
(Optional) Fügen Sie eine Filterung hinzu, die Ressourcen mit bestimmten Labels ein- oder ausschließt:
-
resourceFilter.resourceSelectionCriteria: (Für die Filterung erforderlich) Verwenden Sie
IncludeoderExclude, um eine in resourceMatchers definierte Ressource ein- oder auszuschließen. Fügen Sie die folgenden resourceMatchers Parameter hinzu, um die Ressourcen zu definieren, die ein- oder auszuschließen sind:-
resourceFilter.resourceMatchers: Ein Array von resourceMatcher-Objekten. Wenn Sie mehrere Elemente in diesem Array definieren, werden diese mit einer ODER-Verknüpfung verglichen und die Felder innerhalb jedes Elements (group, kind, version) werden mit einer UND-Verknüpfung verglichen.
-
resourceMatchers[].group: (Optional) Gruppe der zu filternden Ressource.
-
resourceMatchers[].kind: (Optional) Art der zu filternden Ressource.
-
resourceMatchers[].version: (Optional) Version der zu filternden Ressource.
-
resourceMatchers[].names: (Optional) Namen im Kubernetes metadata.name-Feld der Ressource, die gefiltert werden soll.
-
resourceMatchers[].namespaces: (Optional) Namespaces im Kubernetes metadata.name-Feld der Ressource, die gefiltert werden soll.
-
resourceMatchers[].labelSelectors: (Optional) Label-Selektorzeichenfolge im Kubernetes-Metadatenfeld name der Ressource, wie definiert in der "Kubernetes-Dokumentation". Zum Beispiel:
"trident.netapp.io/os=linux".Wenn sowohl resourceFilterals auchlabelSelectorverwendet werden, wirdresourceFilterzuerst ausgeführt und anschließendlabelSelectorauf die resultierenden Ressourcen angewendet.
-
Beispiel:
-
spec: resourceFilter: resourceSelectionCriteria: "Include" resourceMatchers: - group: my-resource-group-1 kind: my-resource-kind-1 version: my-resource-version-1 names: ["my-resource-names"] namespaces: ["my-resource-namespaces"] labelSelectors: ["trident.netapp.io/os=linux"] - group: my-resource-group-2 kind: my-resource-kind-2 version: my-resource-version-2 names: ["my-resource-names"] namespaces: ["my-resource-namespaces"] labelSelectors: ["trident.netapp.io/os=linux"] -
-
Nachdem Sie die Anwendungs-CR erstellt haben, die zu Ihrer Umgebung passt, wenden Sie die CR an. Zum Beispiel:
kubectl apply -f my-app-name.yaml