Guide de l'administrateur NetBackup™ pour Kubernetes
- Présentation de NetBackup pour Kubernetes
- Déploiement et configuration de l'opérateur NetBackup Kubernetes
- Personnaliser la charge de travail Kubernetes
- Déploiement de certificats sur l'opérateur NetBackup Kubernetes
- Gestion des biens Kubernetes
- Gestion des groupes intelligents Kubernetes
- Protection des biens Kubernetes
- Gestion des groupes d'images
- Protection des clusters gérés par Rancher dans NetBackup
- Récupération des biens Kubernetes
- À propos de la sauvegarde incrémentielle et de la restauration
- Activation de la sauvegarde basée sur l'accélérateur
- Activation du mode FIPS dans Kubernetes
- Résolution des problèmes liés à Kubernetes
Prise en charge du mécanisme de planification des pods du système de déplacement des données
Dans NetBackup, les utilisateurs peuvent annoter des pods du datamover pour activer l'utilisation d'un réseau supplémentaire en appliquant des définitions de connexion réseau au pod du datamover, à l'aide d'un ConfigMap spécifique au serveur de sauvegarde.
Pendant l'installation de Helm pour l'opérateur NetBackup Kubernetes, les utilisateurs peuvent spécifier des annotations dans le fichier netbackupkops-helm-chart/values.yaml
, qui seront appliquées aux déploiements de l'opérateur NetBackup Kubernetes et aux pods du datamover. Ce paramètre est facultatif.
Les utilisateurs peuvent annoter ou modifier des annotations existantes en modifiant le ConfigMap spécifique au serveur de sauvegarde.
Par exemple
# kubectl get cm -n <kops-namespace> # kubectl edit cm/<backup-server-name> -n <kops-namespace> datamover.annotations: | k8s.v1.cni.cncf.io/networks: whereabouts-ipvlan-conf-1
Lorsque le pod du datamover utilise un réseau dédié, le hostalias dans le pod ne fonctionne pas pour plusieurs réseaux dédiés. Si la première interface tombe en panne, la connectivité ne bascule pas vers le deuxième réseau de sauvegarde dédié.
Au lieu d'avoir deux interfaces réseau dédiées distinctes connectées au datamover, il est recommandé de créer un pont à l'aide des deux interfaces et de configurer multus sur ce pont.
Spécifiez les champs suivants dans le configMap du serveur de sauvegarde pour planifier les pods du système de déplacement des données sur les nœuds.
nodeSelector : nodeSelector est un moyen facile de limiter les pods aux nœuds avec des étiquettes spécifiques.
Exemple :
apiVersion: v1 kind: ConfigMap metadata: name: backupserver.sample.domain.com namespace: netbackup data: datamover.hostaliases: | 10.20.12.13=backupserver.sample.domain.com 10.21.12.13=mediaserver.sample.domain.com datamover.properties: | image=reg.domain.com/datamover/image:latest datamover.nodeSelector: | kubernetes.io/hostname: test1-l94jm-worker-k49vj topology.rook.io/rack: rack1 version: "1"
nodeName : nodeName est un formulaire direct de sélection de nœud différent d'affinity ou de nodeSelector. Il vous permet de spécifier un nœud sur lequel un pod est planifié pour la sauvegarde et de remplacer le mécanisme de planification par défaut.
Exemple :
apiVersion: v1 kind: ConfigMap metadata: name: backupserver.sample.domain.com namespace: netbackup data: datamover.hostaliases: | 10.20.12.13=backupserver.sample.domain.com 10.21.12.13=mediaserver.sample.domain.com datamover.properties: | image=reg.domain.com/datamover/image:latest datamover.nodeName : test1-l94jm-worker-hbblk version: "1"
Taint et Toleration : la valeur Toleration vous permet de planifier les pods avec des valeurs taint similaires. Les valeurs Taint et la Toleration fonctionnent ensemble pour garantir que les pods sont planifiés sur les nœuds appropriés. Si une ou plusieurs valeurs taint sont appliquées à un nœud, celui-ci ne doit pas accepter les pods qui ne prennent pas en charge les valeurs taint.
Exemple :
apiVersion: v1 kind: ConfigMap metadata: name: backupserver.sample.domain.com namespace: netbackup data: datamover.hostaliases: | 10.20.12.13=backupserver.sample.domain.com 10.21.12.13=mediaserver.sample.domain.com datamover.properties: | image=reg.domain.com/datamover/image:latest datamover.tolerations: | - key: "dedicated" operator: "Equal" value: "experimental" effect: "NoSchedule" version: "1"
Affinité et Anti-affinité : les fonctions d'affinité de nœud (similaires au champ NodeSelector, mais plus expressives) vous permettent de spécifier des règles logicielles. La fonction d'affinité/anti-affinité Inter-pod vous permet de limiter les pods au niveau des étiquettes sur les autres pods.
Exemples :
Affinité de nœud :
apiVersion: v1 kind: ConfigMap metadata: name: backupserver.sample.domain.com namespace: netbackup data: datamover.hostaliases: | 10.20.12.13=backupserver.sample.domain.com 10.21.12.13=mediaserver.sample.domain.com datamover.properties: | image=reg.domain.com/datamover/image:latest datamover.affinity: | nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - test1-l94jm-worker-hbblk preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 version: "1"
Affinité de pod
apiVersion: v1 kind: ConfigMap metadata: name: backupserver.sample.domain.com namespace: netbackup data: datamover.hostaliases: | 10.20.12.13=backupserver.sample.domain.com 10.21.12.13=mediaserver.sample.domain.com datamover.properties: | image=reg.domain.com/datamover/image:latest datamover.affinity: | podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: component operator: In values: - netbackup topologyKey: kubernetes.io/hostname version: "1"
topologySpreadConstraints : les contraintes de propagation de topologie sont utilisées pour contrôler le comportement des pods répartis dans votre cluster, dans des domaines de défaillance tels que des régions, des zones, des nœuds et d'autres domaines de topologie définis par l'utilisateur.
Exemple :
apiVersion: v1 kind: ConfigMap metadata: name: backupserver.sample.domain.com namespace: netbackup data: datamover. hostaliases: | 10.20.12.13=backupserver.sample.domain.com 10.21.12.13=mediaserver.sample.domain.com datamover.properties: | image=reg.domain.com/datamover/image:latest datamover.topologySpreadConstraints : | - maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: DoNotSchedule version: "1"
Étiquettes : les paires clé/valeur sont associées aux objets, tels que des pods. Les étiquettes ont pour but d'identifier les attributs d'un objet qui sont significatifs et pertinents pour les utilisateurs. Les étiquettes peuvent organiser et sélectionner des sous-ensembles d'objets. Les étiquettes associées aux objets lors de leur création sont ajoutées et modifiées par la suite à tout moment.
Exemple :
apiVersion: v1 kind: ConfigMap metadata: name: backupserver.sample.domain.com namespace: netbackup data: datamover.hostaliases: | 10.20.12.13=backupserver.sample.domain.com 10.21.12.13=mediaserver.sample.domain.com datamover.properties: | image=reg.domain.com/datamover/image:latest datamover.labels: | env: test pod: datamover version: "1"
Annotations : l'utilisateur peut utiliser des étiquettes ou des annotations pour associer des métadonnées aux objets Kubernetes. Vous ne pouvez pas utiliser des annotations pour identifier et sélectionner des objets.
Exemple :
apiVersion: v1 kind: ConfigMap metadata: name: backupserver.sample.domain.com namespace: netbackup data: datamover.hostaliases: | 10.20.12.13=backupserver.sample.domain.com 10.21.12.13=mediaserver.sample.domain.com datamover.properties: | image=reg.domain.com/datamover/image:latest datamover.annotations: | buildinfo: |- [{ "name": "test", "build": "1" }] imageregistry: "https://reg.domain.com/" version: "1"