Ransomware attackers specifically target and attempt to destroy backup systems to increase the probability of payment. Hardening your system is critical. Please ensure you have reviewed your platform security using the Security Hardening Checklist
Cohesity

COHESITY Documentation

Explore our documentation to get started, discover products & new features, access troubleshooting guides, register sources, platforms support.

Products
Data Security Alliance
Visit Cohesity.com
Demos
Support
Blogs
Developers
Partner Portals
Cohesity Community
© 2026 Cohesity, Inc. All Rights Reserved.
Terms of Use|
Privacy Policy|
Legal|
  1. Home
  2. NetBackup™ for Kubernetes Administrator's Guide
  3. Deploying and configuring the NetBackup Kubernetes operator
  4. Data mover pod schedule mechanism support
NetBackup™ for Kubernetes Administrator's Guide

Data mover pod schedule mechanism support

In NetBackup, users can annotate datamover pods to enable the use of an additional network by applying Network Attachment Definitions to the datamover pod, by using a backup server specific ConfigMap.

To annotate datamover pods with Network-Attach-Definitions (NAD) during a fresh installation

During NetBackup Kubernetes Operator Helm installation, users can specify annotations in the netbackupkops-helm-chart/values.yaml file, which will be applied to NetBackup Kubernetes Operator deployments and the datamover pods. This is an optional parameter.

To annotate datamover pods with Network-Attach-Definitions (NAD) after installation

Users can annotate or modify existing annotations by editing the backup server specific ConfigMap.

For example

# 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
Limitations

When datamover pod uses a dedicated network, the hostalias inside pod does not work for more than one dedicated network. If the first interface goes down, connectivity does not fallback to second dedicated backup network.

Instead of having two separate dedicated network interfaces plugged into datamover, it is advisable to create a bridge using both interfaces and configure multus on top of this bridge.

Specify the following fields in the backup server ConfigMap to schedule data mover pods on the nodes.

  1. nodeSelector: nodeSelector is the effortless way to constrain pods to the nodes with specific labels.

    Example:

    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" 
  2. nodeName: nodeName is a direct form of node selection than affinity or nodeSelector. It allows you to specify a node on which a pod is scheduled for backup, overriding the default schedule mechanism.

    Example:

    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" 
  3. Taint and Toleration: Toleration allows you to schedule the pods with similar taints. Taint and toleration work together to ensure that the pods are scheduled onto appropriate nodes. If one or more taints are applied to a node. Then that node must not accept any pods which does not tolerate the taints.

    Example:

    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" 
  4. Affinity and Anti-affinity: Node affinity functions like the nodeSelector field but it is more expressive and allows you to specify soft rules. Inter-pod affinity/anti-affinity allows you to constrain pods against labels on the other pods.

    Examples:

    • Node Affinity:

      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" 
    • Pod Affinity

      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" 
  5. topologySpreadConstraints: Topology spread constraints are used to control the behavior of the pods that are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains.

    Example:

    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" 
    • Labels: Labels are the key/value pairs attached to the objects, such as pods. Labels intends to identify the attributes of an object which are significant and relevant to users. Labels can organize and select subsets of objects. Labels which are attached to objects at creation time are subsequently added and modified at any time.

      Example:

      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: User can use either labels or annotations to attach metadata to Kubernetes objects. You cannot use Annotations to identify and select objects.

      Example:

      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" 

Feedback

Was this page helpful?
Previous

Troubleshooting NetBackup servers with short names

Next

Validating accelerator storage class

Feedback

Was this page helpful?