Guide de l'administrateur Kubernetes sur l'interface utilisateur Web NetBackup™

Last Published:
Product(s): NetBackup & Alta Data Protection (10.4)
  1. Présentation de NetBackup pour Kubernetes
    1.  
      Présentation
    2.  
      Fonctions de prise en charge de NetBackup pour Kubernetes
  2. Déploiement et configuration de l'opérateur NetBackup Kubernetes
    1.  
      Conditions préalables au déploiement de l'opérateur NetBackup Kubernetes
    2.  
      Déploiement du package de service sur l'opérateur NetBackup Kubernetes
    3.  
      Spécifications de port pour le déploiement de l'opérateur Kubernetes
    4.  
      Mise à niveau de l'opérateur NetBackup Kubernetes
    5.  
      Suppression de l'opérateur NetBackup Kubernetes
    6.  
      Configuration du système de déplacement des données NetBackup Kubernetes
    7.  
      Configuration automatisée de la protection NetBackup pour Kubernetes
    8. Configuration des paramètres pour l'opération de snapshot NetBackup
      1.  
        Paramètres de configuration pris en charge par les opérateurs Kubernetes
      2.  
        Conditions préalables pour les opérations de sauvegarde depuis un snapshot et de restauration à partir d'une sauvegarde
      3.  
        Paramètres de client DTE pris en charge par Kubernetes
      4.  
        Personnalisation des propriétés du datamover
    9.  
      Dépannage des serveurs NetBackup avec des noms courts
    10.  
      Prise en charge du mécanisme de planification des pods du système de déplacement des données
    11.  
      Validation de la classe de stockage d'accélérateur
  3. Déploiement de certificats sur l'opérateur NetBackup Kubernetes
    1.  
      Déploiement de certificats sur l'opérateur Kubernetes
    2.  
      Exécution d'opérations de certificats basés sur l'ID d'hôte
    3.  
      Exécution d'opérations de certificat d'autorité de certification externe
    4.  
      Identification des types de certificats
  4. Gestion des biens Kubernetes
    1.  
      Ajout d'un cluster Kubernetes
    2. Définition des paramètres
      1.  
        Modification des limites de ressource pour les types de ressources Kubernetes
      2.  
        Configuration de la fréquence de découverte automatique
      3.  
        Configuration des autorisations
    3.  
      Ajout de biens à un plan de protection
    4. Analyse antimalware
      1.  
        Biens par type de charge de travail
  5. Gestion des groupes intelligents Kubernetes
    1.  
      À propos des groupes intelligents
    2.  
      Création d'un groupe intelligent
    3.  
      Suppression d'un groupe intelligent
    4.  
      Modification d'un groupe intelligent
  6. Protection des biens Kubernetes
    1.  
      Protection d'un groupe intelligent
    2.  
      Suppression de la protection d'un groupe intelligent
    3.  
      Configuration d'une planification de sauvegarde
    4.  
      Configuration des options de sauvegardes
    5.  
      Configuration des sauvegardes
    6.  
      Configuration d'AIR (Auto Image Replication) et de la duplication
    7.  
      Configuration des unités de stockage
    8.  
      Prise en charge du mode volume
    9.  
      Configuration d'une sauvegarde cohérente au niveau application
  7. Gestion des groupes d'images
    1. À propos des groupes d'images
      1.  
        Expiration d'image
      2.  
        Copie d'image
  8. Protection des clusters gérés par Rancher dans NetBackup
    1.  
      Ajout d'un cluster RKE géré par Rancher dans NetBackup à l'aide de la configuration automatisée
    2.  
      Ajout manuel d'un cluster RKE géré par Rancher dans NetBackup
  9. Récupération des biens Kubernetes
    1.  
      Exploration et validation des points de récupération
    2.  
      Restauration à partir d'un snapshot
    3.  
      Restauration à partir d'une copie de sauvegarde
  10. À propos de la sauvegarde incrémentielle et de la restauration
    1.  
      Prise en charge des sauvegardes incrémentielles et des restaurations pour Kubernetes
  11. Activation de la sauvegarde basée sur l'accélérateur
    1.  
      À propos de la prise en charge de l'accélérateur NetBackup pour les charges de travail Kubernetes
    2.  
      Contrôle de l'espace disque réservé aux journaux de suivi sur le serveur principal
    3.  
      Impact du comportement de la classe de stockage sur l'accélérateur
    4.  
      À propos des nouvelles analyses forcées par l'accélérateur
    5.  
      Avertissements et raison probable des échecs des sauvegardes avec accélérateur
  12. Activation du mode FIPS dans Kubernetes
    1.  
      Activer le mode FIPS (Federal Information Processing Standards) dans Kubernetes
  13. Résolution des problèmes liés à Kubernetes
    1.  
      Erreur lors de la mise à niveau du serveur principal : échec de NBCheck
    2.  
      Erreur lors de la restauration d'une image ancienne : l'opération échoue
    3.  
      Erreur de l'API de récupération de volume persistant
    4.  
      Erreur lors de la restauration : l'état final du travail affiche un échec partiel
    5.  
      Erreur lors de la restauration sur le même espace de noms
    6.  
      Pods du datamover dépassant la limite de ressource Kubernetes
    7.  
      Erreur lors de la restauration : le travail échoue sur le cluster hautement chargé
    8.  
      Le rôle Kubernetes personnalisé créé pour des clusters spécifiques ne peut pas afficher les travaux
    9.  
      Openshift crée des PVC vides non sélectionnés lors de la restauration des applications installées à partir d'OperatorHub
    10.  
      L'opérateur NetBackup Kubernetes ne répond plus si la limite de PID est dépassée sur le nœud Kubernetes
    11.  
      Échec lors de la modification du cluster dans NetBackup Kubernetes 10.1
    12.  
      Échec de la restauration à partir d'un snapshot pour les demandes PVC volumineuses
    13.  
      Échec partiel de la restauration des PVC de mode fichier de l'espace de noms sur un système de fichiers différent
    14.  
      Échec de la restauration à partir de la copie de sauvegarde avec une erreur d'incohérence d'image
    15.  
      Vérifications de connectivité entre les serveurs principal/de médias NetBackup et les serveurs Kubernetes
    16.  
      Erreur lors de la sauvegarde avec accélérateur lorsque l'espace disponible pour le journal de suivi est insuffisant
    17.  
      Erreur lors de la sauvegarde avec accélérateur en raison de l'échec de la création de la demande PVC pour le journal de suivi
    18.  
      Erreur lors de la sauvegarde avec accélérateur en raison d'une classe de stockage d'accélérateur non valide
    19.  
      Une erreur se produit lors du démarrage du pod de journal de suivi
    20.  
      Échec de la configuration de l'instance de système de déplacement des données pour l'opération de création de demande PVC pour le journal de suivi
    21.  
      Erreur lors de la lecture de la classe de stockage du journal de suivi à partir du fichier configmap

Configuration d'une sauvegarde cohérente au niveau application

Certains pods qui exécutent des applications, comme les bases de données, nécessitent des procédures supplémentaires pour l'obtention de sauvegardes cohérentes au niveau application.

Les sauvegardes cohérentes au niveau application requièrent un mécanisme pour comprendre les métadonnées de l'application, leur état dans la mémoire et les données persistantes qui résident sur le stockage persistant. Pour préserver l'intégrité du système lors de la restauration, une sauvegarde cohérente au niveau application de toutes ces ressources Kubernetes permet de rationaliser le processus de récupération. Ces procédures ne sont pas requises si seule une sauvegarde en mode cohérence d'incident est requise.

L'application comporte des étapes documentées par le fournisseur pour suspendre les opérations d'entrée et de sortie (E/S) afin de créer un snapshot cohérent au niveau application. Il est important de personnaliser ces procédures, car elles varient d'une application à l'autre. Le contenu des procédures relève de la responsabilité du client.

Pour protéger les charges de travail Kubernetes avec NetBackup, vous devez appliquer des annotations de pod d'application utilisant des hooks de sauvegarde pour obtenir des snapshots cohérents au niveau application. Les annotations Kubernetes sont simplement des métadonnées qui peuvent être appliquées à toutes les ressources Kubernetes. Les hooks Kubernetes sont des actions définies par l'utilisateur qui peuvent correspondre à une ou plusieurs commandes. Dans votre infrastructure Kubernetes, appliquez ces annotations et ces hooks à un pod d'application à suspendre.

Les hooks de sauvegarde sont utilisés pour les traitements intervenant avant et après la création d'un snapshot. Dans le contexte de la protection des données, cela signifie généralement qu'un hook de présauvegarde NetBackup appelle une procédure ou une commande de suspension, et que le hook de postsauvegarde NetBackup appelle une procédure ou une commande de réactivation. Chaque jeu de hooks spécifie la commande et le conteneur auxquels il est appliqué. Notez que les commandes ne sont pas exécutées dans un shell sur les conteneurs. Les exemples donnés utilisent donc une chaîne de commande complète avec le répertoire.

Identifiez les applications qui nécessitent des sauvegardes cohérentes au niveau application et appliquez l'annotation avec un jeu de hooks de sauvegarde lors de la configuration de la protection des données Kubernetes.

Pour ajouter une annotation à un pod, utilisez l'interface utilisateur Kubernetes. Vous pouvez également utiliser la fonction d'annotation kubectl sur la console du cluster Kubernetes pour un pod ou une étiquette spécifique. Les méthodes d'application des annotations peuvent varier selon la distribution. Les exemples suivants s'appliquent à la commande kubectl, en fonction de sa disponibilité étendue dans la plupart des distributions.

Il est également possible d'ajouter des annotations aux objets Kubernetes de base, tels que les ressources de déploiement ou de jeu de répliques, pour garantir que les annotations sont incluses dans tous les nouveaux pods déployés. L'administrateur Kubernetes peut mettre à jour les annotations de façon dynamique.

Les étiquettes sont des paires clé-valeur liées aux objets Kubernetes tels que des pods ou des services. Des étiquettes sont utilisées comme attributs pour les objets importants et utiles pour l'utilisateur. Il est possible d'associer des étiquettes aux objets lors de leur création et de les ajouter ou de les modifier par la suite à tout moment. Kubernetes offre une prise en charge intégrée de ces étiquettes pour interroger des objets et effectuer des opérations en blocs sur les sous-ensembles sélectionnés. Chaque objet peut avoir un ensemble d'étiquettes valeur-clé définies. Chaque clé doit être unique pour un objet donné.

Un exemple de formatage et de syntaxe des métadonnées d'étiquette est présenté ci-dessous :

"metadata": {"labels": {"key1":"value1","key2":"value2"}}

Spécifiez le nom du pod ou bien une étiquette qui s'applique au groupe de pods souhaité. Si plusieurs arguments d'annotation sont utilisés, spécifiez le format JSON approprié (tableau JSON, par exemple) : ["item1","item2","itemn"]# kubectl annotate pod [ {pod_name} | -l {label=value}] -n {the-pods-namespace_name} [annotation syntax - see following]

Cette méthode peut être combinée à && pour associer plusieurs commandes si certaines applications nécessitent plusieurs commandes pour obtenir le résultat souhaité. Les commandes spécifiées ne sont pas fournies par Veritas et l'utilisateur doit personnaliser manuellement le pod d'application. Remplacez {values} par les noms utilisés dans votre environnement.

Remarque :

Toutes les commandes kubectl doivent être définies sur une seule ligne. Faites preuve de vigilance lorsque vous copiez ou collez les exemples suivants.

Après la mise à niveau vers NetBackup 10.2, mettez à jour les annotations vers ces nouveaux hooks de présauvegarde et de postsauvegarde NetBackup qui incluent désormais le préfixe « netbackup » :

netbackup-pre.hook.back.velero.io/command
netbackup-pre.hook.backup.velero.io/container
netbackup-post.hook.back.velero.io/command
netbackup-post.hook.backup.velero.io/container
Exemple d'utilisation du nom de pod avec MongoDB

Les commandes suivantes permettent de verrouiller et déverrouiller une base de données MongoDB 4.2.23 :

# mongo --eval "db. fsyncLock ()"

# mongo --eval "db.fsyncUnlock()"

Elles peuvent être intégrées à la commande unique suivante pour définir les hooks de présauvegarde et de postsauvegarde pour MongoDB. Notez la syntaxe spéciale pour l'échappement des caractères spéciaux, ainsi que les crochets ([]), les guillemets simples et doubles et les virgules (,) utilisés dans le format JSON :

# kubectl annotate pod {mongodb-pod-name} -n {mongodb namespace} netbackup-pre.hook.back.velero.io/command='["/bin/bash", "-c", "mongo --eval \"db.fsyncLock()\""]' netbackup-pre.hook.backup.velero.io/container={mongodb-pod-name} netbackup-post.hook.backup.velero.io/command='["/bin/bash","-c","mongo --eval \"db.fsyncUnlock()\""]' netbackup-post.hook.backup.velero.io/container={mongodb-pod-name}

Exemple d'utilisation des étiquettes avec MySQL

Les commandes suivantes permettent de suspendre et de réactiver la base de données MySQL :

# mysql -uroot -ppassword -e "flush tables with read lock"

# mysql -uroot -ppassword -e "unlock tables"

Elles peuvent être intégrées à la commande unique suivante pour définir les hooks de présauvegarde et de postsauvegarde pour MySQL. Dans cet exemple, nous avons utilisé une étiquette au lieu d'un nom de pod. L'étiquette peut ainsi annoter plusieurs pods à la fois. Notez la syntaxe spéciale pour l'échappement des caractères spéciaux, ainsi que les crochets ([]), les guillemets simples et doubles et les virgules (,) utilisés dans le format JSON :

# kubectl annotate pod -l label=value -n {mysql namespace} netbackup-pre.hook.backup.velero.io/command='["/bin/bash", "-c", "mysql -uroot -ppassword -e \"flush tables with read lock\""]' netbackup-pre.hook.backup.velero.io/container={mysql container name} netbackup-post.hook.backup.velero.io/command='["/bin/bash", "-c", "mysql -uroot -ppassword -e \"unlock tables\""]' netbackup-post.hook.backup.velero.io/container={mysql container name}

Exemple d'utilisation d'étiquettes dans Postgres

Les commandes suivantes permettent de suspendre et de réactiver la base de données PostgreSQL :

# Psql -U postgres -c "SELECT pg_start_backup('tagvalue');"

# psql -U postgres -c \"SELECT pg_stop_backup();"

Elles peuvent être intégrées à la commande unique suivante pour définir les hooks de présauvegarde et de postsauvegarde pour Postgres. Dans cet exemple, nous avons utilisé une étiquette au lieu d'un nom de pod. L'étiquette peut ainsi annoter plusieurs pods correspondants à la fois. Les étiquettes peuvent être appliquées à n'importe quel objet Kubernetes. Dans ce cas, nous les utilisons pour modifier un conteneur spécifique et sélectionner uniquement certains pods d'une façon différente. Notez la syntaxe spéciale pour l'échappement des caractères spéciaux, ainsi que les crochets ([]), les guillemets simples et doubles et les virgules (,) utilisés dans le format JSON :

# kubectl annotate pod -l app=app-postgresql -n {postgres namespace} netbackup-pre.hook.backup.velero.io/command='["/bin/bash", "-c", "psql -U postgres -c \"SELECT pg_start_backup(quote_literal($EPOCHSECONDS));\""]' netbackup-pre.hook.backup.velero.io/container={postgres container name} netbackup-post.hook.backup.velero.io/command='["/bin/bash", "-c", "psql -U postgres -c \"SELECT pg_stop_backup();\""]' netbackup-post.hook.backup.velero.io/container={postgres container name}

Exemple d'application NGINX sans hook de conteneur

Les commandes suivantes permettent de suspendre et de réactiver l'application Nginx :

# /sbin/fsfreeze --freeze /var/log/nginx

# /sbin/fsfreeze --unfreeze /var/log/nginx

Elles peuvent être intégrées à la commande unique suivante pour définir les hooks de présauvegarde et de postsauvegarde pour NGINX. Dans cet exemple, les hooks de conteneur sont omis, ce qui modifie le premier conteneur correspondant par défaut au nom de pod. Notez la syntaxe spéciale pour l'échappement des caractères spéciaux, ainsi que les crochets ([]), les guillemets simples et doubles et les virgules (,) utilisés dans le format JSON :

# kubectl annotate pod {nginx-pod-name} -n {nginx namespace} netbackup-pre.hook.backup.velero.io/command='["/sbin/fsfreeze", "--freeze", "/var/log/nginx"]' netbackup-post.hook.backup.velero.io/command='["/sbin/fsfreeze", "--unfreeze", "/var/log/nginx"]'

Exemple avec Cassandra

Les commandes suivantes permettent de suspendre et de réactiver la base de données Cassandra :

# nodetool flush

# nodetool verify

Elles peuvent être intégrées à la commande unique suivante pour définir les hooks de présauvegarde et de postsauvegarde pour Cassandra. Notez la syntaxe spéciale pour l'échappement des caractères spéciaux, ainsi que les crochets ([]), les guillemets simples ('') et doubles ("") et les virgules (,) utilisés dans le format JSON :

# kubectl annotate pod {cassandra-pod} -n {Cassandra namespace} netbackup-pre.hook.backup.velero.io/command='["/bin/bash", "-c", "nodetool flush"]' netbackup-pre.hook.backup.velero.io/container={cassandra-pod} netbackup-post.hook.backup.velero.io/command='["/bin/bash", "-c", "nodetool verify"]' netbackup-post.hook.backup.velero.io/container={cassandra-pod}

Remarque :

Les exemples sont fournis uniquement à titre indicatif, et les conditions spécifiques à chaque charge de travail doivent inclure la collaboration entre les administrateurs de sauvegardes, de charges de travail et les administrateurs Kubernetes.

Actuellement, Kubernetes ne prend pas en charge les hooks d'erreur. Si la commande spécifiée par l'utilisateur échoue, le snapshot de sauvegarde est interrompu.

Le délai d'expiration par défaut après lequel la commande renvoie un état de sortie est de 30 secondes. Vous pouvez modifier cette valeur en ajoutant les hooks suivants comme annotations aux pods :

netbackup-pre.hook.backup.velero.io/timeout=#in-seconds#

netbackup-post.hook.backup.velero.io/timeout=#in-seconds#