Skip to main content
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Kubernetes-Anwendungen hinzufügen und schützen

Beitragende netapp-mwallis
Änderungen vorschlagen

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.

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 beginnen

Bevor Sie eine Kubernetes-Anwendung hinzufügen und schützen können, müssen Sie"Kubernetes-Workloads entdecken" .

Eine Namespace-basierte App (Web-UI) hinzufügen
Schritte
  1. Wählen Sie in NetApp Backup and Recovery*Inventar* aus.

  2. Wählen Sie eine Kubernetes-Instanz und wählen Sie Anzeigen, um die mit dieser Instanz verknüpften Ressourcen anzuzeigen.

  3. Wählen Sie die Registerkarte Anwendungen.

  4. Wählen Sie Anwendung erstellen.

  5. Geben Sie einen Namen für die Anwendung ein.

  6. Wählen Sie in der Cluster-Liste den Cluster aus, der die Anwendung hostet.

  7. Unter Filter wählen Sie Namespace aus, um Anwendungen nach Namespace zu filtern.

  8. 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

      1. 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.

      2. Wählen Sie optional Suchen aus, um die Ressourcen basierend auf Ihren Suchkriterien zu finden.

        Hinweis 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.
  9. Backup and Recovery zeigt eine Liste der Ressourcen an, die Ihren Suchkriterien entsprechen.

  10. Wenn die Liste die Ressourcen enthält, die Sie schützen möchten, wählen Sie Weiter.

  11. 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.

  12. 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" .

  13. Wählen Sie Erstellen.

Ergebnis

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.

VM-basierte App hinzufügen (Web-UI)
Schritte
  1. Wählen Sie in NetApp Backup and Recovery*Inventar* aus.

  2. Wählen Sie eine Kubernetes-Instanz und wählen Sie Anzeigen, um die mit dieser Instanz verknüpften Ressourcen anzuzeigen.

  3. Wählen Sie die Registerkarte Anwendungen.

  4. Wählen Sie Anwendung erstellen.

  5. Geben Sie einen Namen für die Anwendung ein.

  6. Wählen Sie in der Cluster-Liste den Cluster aus, der die Anwendung hostet.

  7. Wählen Sie unter Filter die Option Virtuelle Maschinen, um eine VM-basierte Anwendung zu erstellen.

  8. Suchen Sie nach virtuellen Maschinen, die Sie der Anwendung hinzufügen möchten, indem Sie einen Namespace auswählen und optional Label-Selektoren angeben.

    Hinweis 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.

  9. Wenn die Liste die VMs enthält, die Sie schützen möchten, wählen Sie Weiter.

  10. 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.

  11. 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" .

  12. Wählen Sie Erstellen.

Ergebnis

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.

Fügen Sie eine Namespace-basierte App (CR) hinzu
Schritte
  1. Erstellen Sie die CR-Datei der Zielanwendung:

    1. Erstellen Sie die benutzerdefinierte Ressourcendatei (CR) und benennen Sie sie (zum Beispiel my-app-name.yaml).

    2. 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.

    3. 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 protect oder unprotect.

      • 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
  1. (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 Include oder Exclude, 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".

          Hinweis Wenn sowohl resourceFilter als auch labelSelector verwendet werden, wird resourceFilter zuerst ausgeführt und anschließend labelSelector auf 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"]
  2. 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