Skip to main content
NetApp Backup and Recovery
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Ajouter et protéger les applications Kubernetes

Contributeurs netapp-mwallis

NetApp Backup and Recovery vous permet de découvrir facilement vos clusters Kubernetes, sans générer ni télécharger de fichiers kubeconfig. Vous pouvez connecter des clusters Kubernetes et installer le logiciel requis à l’aide de commandes simples copiées à partir de l’interface utilisateur de la NetApp Console .

Ajouter et protéger une nouvelle application Kubernetes

La première étape de la protection des applications Kubernetes consiste à créer une application dans NetApp Backup and Recovery. Lorsque vous créez une application, vous informez la console de l’application en cours d’exécution sur le cluster Kubernetes.

Avant de commencer

Avant de pouvoir ajouter et protéger une application Kubernetes, vous devez"découvrir les charges de travail Kubernetes" .

Ajouter une application à l'aide de l'interface utilisateur web
Étapes
  1. Dans NetApp Backup and Recovery, sélectionnez Inventaire.

  2. Choisissez une instance Kubernetes et sélectionnez Afficher pour afficher les ressources associées à cette instance.

  3. Sélectionnez l'onglet Applications.

  4. Sélectionnez Créer une application.

  5. Entrez un nom pour l'application.

  6. Vous pouvez également choisir l’un des champs suivants pour rechercher les ressources que vous souhaitez protéger :

    • Cluster associé

    • Espaces de noms associés

    • Types de ressources

    • Sélecteurs d'étiquettes

  7. Vous pouvez également sélectionner « Ressources à portée de cluster » pour choisir les ressources à portée de cluster. Si vous les incluez, elles seront ajoutées à l'application lors de sa création.

  8. Vous pouvez également sélectionner Rechercher pour trouver les ressources en fonction de vos critères de recherche.

    Remarque La console ne stocke pas les paramètres ou les résultats de recherche ; les paramètres sont utilisés pour rechercher dans le cluster Kubernetes sélectionné des ressources pouvant être incluses dans l'application.
  9. La console affiche une liste de ressources correspondant à vos critères de recherche.

  10. Si la liste contient les ressources que vous souhaitez protéger, sélectionnez Suivant.

  11. Vous pouvez également, dans la zone Politique, choisir une politique de protection existante pour protéger l'application ou en créer une nouvelle. Si vous ne sélectionnez pas de politique, l'application est créée sans politique de protection. Tu peux"ajouter une politique de protection" plus tard.

  12. Dans la zone Préscripts et postscripts, activez et configurez tous les hooks d'exécution de préscripts ou de postscripts que vous souhaitez exécuter avant ou après les opérations de sauvegarde. Pour activer les prescripts ou les postscripts, vous devez déjà en avoir créé au moins un"modèle de crochet d'exécution" .

  13. Sélectionnez Créer.

Résultat

L'application est créée et apparaît dans la liste des applications dans l'onglet Applications de l'inventaire Kubernetes. La NetApp Console active la protection de l'application en fonction de vos paramètres et vous pouvez surveiller la progression dans la zone Surveillance de la sauvegarde et de la récupération.

Ajouter une application à l'aide d'un CR
Étapes
  1. Créez le fichier CR de l'application de destination :

    1. Créez le fichier de ressource personnalisée (CR) et nommez-le (par exemple, my-app-name.yaml).

    2. Configurez les attributs suivants :

      • metadata.name: (Obligatoire) Le nom de la ressource personnalisée de l’application. Notez le nom que vous choisissez, car d’autres fichiers CR nécessaires aux opérations de protection font référence à cette valeur.

      • spec.includedNamespaces : (Obligatoire) Utilisez un espace de noms et un sélecteur d’étiquette pour spécifier les espaces de noms et les ressources utilisés par l’application. L’espace de noms de l’application doit figurer dans cette liste. Le sélecteur d’étiquette est facultatif et peut être utilisé pour filtrer les ressources au sein de chaque espace de noms spécifié.

      • spec.includedClusterScopedResources: (Facultatif) Utilisez cet attribut pour spécifier les ressources de portée cluster à inclure dans la définition de l’application. Cet attribut vous permet de sélectionner ces ressources en fonction de leur groupe, version, type et étiquettes.

        • groupVersionKind: (Obligatoire) Spécifie le groupe d'API, la version et le type de la ressource à portée de cluster.

        • labelSelector : (Optionnel) Filtre les ressources à portée du cluster en fonction de leurs étiquettes.

    3. Configurez les annotations suivantes, si nécessaire :

      • metadata.annotations.protect.trident.netapp.io/skip-vm-freeze : (Optionnel) Cette annotation s'applique uniquement aux applications définies à partir de machines virtuelles, telles que dans les environnements KubeVirt, où le gel du système de fichiers intervient avant la création d'instantanés. Indiquez si cette application peut écrire sur le système de fichiers pendant la création d'un instantané. Si la valeur est true, l'application ignore le paramètre global et peut écrire sur le système de fichiers pendant la création d'un instantané. Si la valeur est false, l'application ignore le paramètre global et le système de fichiers est gelé pendant la création d'un instantané. Si cette annotation est spécifiée mais que l'application ne comporte aucune machine virtuelle dans sa définition, elle est ignorée. Si elle n'est pas spécifiée, l'application suit le "paramètre de gel global du système de fichiers".

      • protect.trident.netapp.io/protection-command : (Optionnel) Utilisez cette annotation pour indiquer à Backup and Recovery de protéger ou d’arrêter de protéger l’application. Les valeurs possibles sont protect ou unprotect.

      • protect.trident.netapp.io/protection-policy-name : (Facultatif) Utilisez cette annotation pour spécifier le nom de la protection des données NetApp Backup and Recovery que vous souhaitez utiliser pour protéger cette application. Cette protection des données doit déjà exister dans NetApp Backup and Recovery.

Si vous devez appliquer cette annotation après qu'une application a déjà été créée, vous pouvez utiliser la commande suivante :

kubectl annotate application -n <application CR namespace> <application CR name> protect.trident.netapp.io/skip-vm-freeze="true"

+
Exemple 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. (Facultatif) Ajoutez un filtrage qui inclut ou exclut les ressources marquées avec des étiquettes particulières :

    • resourceFilter.resourceSelectionCriteria : (Obligatoire pour le filtrage) Utilisez Include ou Exclude pour inclure ou exclure une ressource définie dans resourceMatchers. Ajoutez les paramètres resourceMatchers suivants pour définir les ressources à inclure ou à exclure :

      • resourceFilter.resourceMatchers : Un tableau d’objets resourceMatcher. Si vous définissez plusieurs éléments dans ce tableau, ils correspondent selon une opération OU, et les champs à l’intérieur de chaque élément (group, kind, version) correspondent selon une opération ET.

        • resourceMatchers[].group: (Optionnel) Groupe de la ressource à filtrer.

        • resourceMatchers[].kind: (Optionnel) Type de ressource à filtrer.

        • resourceMatchers[].version: (Optionnel) Version de la ressource à filtrer.

        • resourceMatchers[].names: (Optionnel) Noms dans le champ Kubernetes metadata.name de la ressource à filtrer.

        • resourceMatchers[].namespaces: (Optionnel) Espaces de noms dans le champ metadata.name de Kubernetes de la ressource à filtrer.

        • resourceMatchers[].labelSelectors : (Optionnel) Chaîne de sélection d'étiquette dans le champ metadata.name de la ressource Kubernetes tel que défini dans le "Documentation Kubernetes". Par exemple : "trident.netapp.io/os=linux".

          Remarque Lorsque resourceFilter et labelSelector sont utilisés, resourceFilter s'exécute en premier, puis labelSelector est appliqué aux ressources résultantes.

      Par exemple :

    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. Après avoir créé la CR d'application adaptée à votre environnement, appliquez la CR. Par exemple :

    kubectl apply -f my-app-name.yaml