Ajouter et protéger les applications Kubernetes
NetApp Backup and Recovery vous permet d'ajouter des applications Kubernetes via l'interface web ou en appliquant des fichiers de ressources personnalisés. Les applications peuvent être basées sur un espace de noms, composées de ressources Kubernetes standard, ou basées sur des machines virtuelles, composées d'une ou plusieurs machines virtuelles.
Administrateur d'organisation ou administrateur SnapCenter . "En savoir plus sur les rôles d'accès à NetApp Backup and Recovery" . "En savoir plus sur les rôles d'accès à la NetApp Console pour tous les services" .
Ajouter et protéger une nouvelle application Kubernetes
La première étape pour protéger les applications Kubernetes consiste à créer une application dans NetApp Backup and Recovery. La création d'une application permet à Backup and Recovery de reconnaître l'application en cours d'exécution sur le cluster Kubernetes.
Avant de pouvoir ajouter et protéger une application Kubernetes, vous devez"découvrir les charges de travail Kubernetes" .
-
Dans NetApp Backup and Recovery, sélectionnez Inventaire.
-
Choisissez une instance Kubernetes et sélectionnez Afficher pour afficher les ressources associées à cette instance.
-
Sélectionnez l'onglet Applications.
-
Sélectionnez Créer une application.
-
Entrez un nom pour l'application.
-
Dans la liste Cluster, sélectionnez le cluster qui héberge l'application.
-
Sous Filtres, choisissez Espace de noms pour filtrer les applications par espace de noms.
-
Vous pouvez également choisir l’un des champs suivants pour rechercher les ressources que vous souhaitez protéger :
-
Espaces de noms associés
-
Types de ressources
-
Sélecteurs d'étiquettes
-
Sélectionnez Ajouter des ressources à portée de cluster pour ajouter des ressources dont la portée est limitée au niveau du cluster. Si vous les incluez, elles sont ajoutées à l'application lors de sa création.
-
Vous pouvez également sélectionner Rechercher pour trouver les ressources en fonction de vos critères de recherche.
Backup and Recovery ne stocke pas les paramètres ni les résultats de la recherche ; les paramètres servent à rechercher dans le cluster Kubernetes sélectionné les ressources pouvant être incluses dans l’application.
-
-
-
Sauvegarde et restauration affiche une liste de ressources correspondant à vos critères de recherche.
-
Si la liste contient les ressources que vous souhaitez protéger, sélectionnez Suivant.
-
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.
-
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" .
-
Sélectionnez Créer.
L'application est créée et apparaît dans la liste des applications de l'onglet Applications de l'inventaire Kubernetes. NetApp Backup and Recovery permet de protéger l'application selon vos paramètres, et vous pouvez suivre la progression dans la section Monitoring.
-
Dans NetApp Backup and Recovery, sélectionnez Inventaire.
-
Choisissez une instance Kubernetes et sélectionnez Afficher pour afficher les ressources associées à cette instance.
-
Sélectionnez l'onglet Applications.
-
Sélectionnez Créer une application.
-
Entrez un nom pour l'application.
-
Dans la liste Cluster, sélectionnez le cluster qui héberge l'application.
-
Sous Filtres, choisissez Machines virtuelles pour créer une application basée sur une VM.
-
Recherchez les machines virtuelles à ajouter à l'application en choisissant un espace de noms et en incluant éventuellement des sélecteurs d'étiquettes.
Si vous sélectionnez des machines virtuelles dans la liste, la définition de l'application est statique : aucune nouvelle machine virtuelle n'est ajoutée à l'application ultérieurement (vous devez modifier l'application pour les ajouter et les protéger). Si vous utilisez des sélecteurs par étiquette, vous ne pouvez pas sélectionner de machines virtuelles individuellement ni modifier la liste générée, mais toute machine virtuelle correspondant ultérieurement au sélecteur est automatiquement incluse et protégée. Les machines virtuelles sélectionnées apparaissent dans la liste à droite.
-
Si la liste contient les machines virtuelles que vous souhaitez protéger, sélectionnez Suivant.
-
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.
-
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" .
-
Sélectionnez Créer.
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.
-
Créez le fichier CR de l'application de destination :
-
Créez le fichier de ressource personnalisée (CR) et nommez-le (par exemple,
my-app-name.yaml). -
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.
-
-
-
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
protectouunprotect. -
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
-
(Facultatif) Ajoutez un filtrage qui inclut ou exclut les ressources marquées avec des étiquettes particulières :
-
resourceFilter.resourceSelectionCriteria : (Obligatoire pour le filtrage) Utilisez
IncludeouExcludepour 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".Lorsque resourceFilteretlabelSelectorsont utilisés,resourceFilters'exécute en premier, puislabelSelectorest 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"] -
-
Après avoir créé la CR d'application adaptée à votre environnement, appliquez la CR. Par exemple :
kubectl apply -f my-app-name.yaml