NetBackup™ Deployment Guide for Kubernetes Clusters
- Introduction
- Section I. Configurations
- Prerequisites
- Recommendations and Limitations
- Configurations
- Configuration of key parameters in Cloud Scale deployments
- Section II. Deployment
- Section III. Monitoring and Management
- Monitoring NetBackup
- Monitoring Snapshot Manager
- Monitoring fluentbit
- Monitoring MSDP Scaleout
- Managing NetBackup
- Managing the Load Balancer service
- Managing PostrgreSQL DBaaS
- Managing fluentbit
- Performing catalog backup and recovery
- Section IV. Maintenance
- PostgreSQL DBaaS Maintenance
- Patching mechanism for primary, media servers, fluentbit pods, and postgres pods
- Upgrading
- Cloud Scale Disaster Recovery
- Uninstalling
- Troubleshooting
- Troubleshooting AKS and EKS issues
- Troubleshooting AKS-specific issues
- Troubleshooting EKS-specific issues
- Troubleshooting AKS and EKS issues
- Appendix A. CR template
- Appendix B. MSDP Scaleout
- MSDP Scaleout configuration
- Managing MSDP Scaleout
- MSDP Scaleout maintenance
Deploying the operators
To perform these steps, log on to the Linux workstation or VM where you have extracted the TAR file.
Prerequisites to deploy operators
Ensure that the following steps are performed before deploying the operators:
- Install cert-manager by using the following command:
helm repo add jetstack https://charts.jetstack.io --force-update
helm upgrade -i -n cert-manager cert-manager jetstack/cert-manager \ --version 1.13.3 \ --set webhook.timeoutSeconds=30 \ --set installCRDs=true \ --wait --create-namespace
For details, see cert-manager Documentation.
- Create NetBackup namespace by using the following command:
kubectl create ns netbackup
- Install trust-manager by using the following command:
kubectl create namespace trust-manager
helm upgrade -i --create-namespace --namespace trust-manager trust-manager jetstack/trust-manager --set app.trust.namespace=netbackup --version v0.7.0 --wait
For details, see trust-manager Documentation.
To deploy the operators
- Use the following command to save the operators chart values to a file:
helm show values operators-10.5.x.x.xxxx.tgz > operators-values.yaml
- Use the following command to edit the chart values to fit your requirement:
vi operators-values.yaml
- Execute the following command to deploy the operators:
helm upgrade --install operators operators-10.5.x.x.xxxx.tgz -f operators-values.yaml --create-namespace --namespace netbackup-operator-system
Or
If using the OCI container registry, use the following command:
helm upgrade --install operators oci://abcd.veritas.com:5000/helm-charts/operators --version 10.5.x.x.xxxx -f operators-values.yaml --create-namespace --namespace netbackup-operator-system
Following is the output of the above command:
$ helm show values operators-10.5.x.x.xxxx.tgz > operators-values.yaml $ $ vi operators-values.yaml $ $ helm upgrade --install operators operators-10.5.x.x.xxxx.tgz \ > -f operators-values.yaml \ > --create-namespace \ > --namespace netbackup-operator-system Release "operators" does not exist. Installing it now. NAME: operators LAST DEPLOYED: Tue Feb 27 00:01:29 2024 NAMESPACE: netbackup-operator-system STATUS: deployed REVISION: 1 TEST SUITE: None
Following is an example for
operators-values.yaml
file:# Copyright (c) 2023 Veritas Technologies LLC. All rights reserved # Default values for operators. # This is a YAML-formatted file. # Declare variables to be passed into your templates. global: # Toggle for platform-specific features & settings # Microsoft AKS: "aks" # Amazon EKS: "eks" platform: "eks" # This specifies a container registry that the cluster has access to. # NetBackup images should be pushed to this registry prior to applying this # Environment resource. # Example Azure Container Registry name: # example.azurecr.io # Example AWS Elastic Container Registry name: # 123456789012.dkr.ecr.us-east-1.amazonaws.com containerRegistry: "123456789012.dkr.ecr.us-east-1.amazonaws.com" operatorNamespace: "netbackup-operator-system" storage: eks: fileSystemId: fs-0f3cc640eeec507d0 msdp-operator: image: name: msdp-operator # Provide tag value in quotes eg: '17.0' tag: "20.5" pullPolicy: Always namespace: labels: control-plane: controller-manager # This determines the path used for storing core files in the case of a crash. corePattern: "/core/core.%e.%p.%t" # This specifies the number of replicas of the msdp-operator controllers # to create. Minimum number of supported replicas is 1. replicas: 2 # Optional: provide label selectors to dictate pod scheduling on nodes. # By default, when given an empty {} all nodes will be equally eligible. # Labels should be given as key-value pairs, ex: # agentpool: mypoolname nodeSelector: {} # Storage specification to be used by underlying persistent volumes. # References entries in global.storage by default, but can be replaced storageClass: name: nb-disk-premium size: 5Gi # Specify how much of each resource a container needs. resources: # Requests are used to decide which node(s) should be scheduled for pods. # Pods may use more resources than specified with requests. requests: cpu: 150m memory: 150Mi # Optional: Limits can be implemented to control the maximum utilization by pods. # The runtime prevents the container from using more than the configured resource limits. limits: {} logging: # Enable verbose logging debug: false # Maximum age (in days) to retain log files, 1 <= N <= 365 age: 28 # Maximum number of log files to retain, 1 <= N =< 20 num: 20 nb-operator: image: name: "netbackup/operator" tag: "10.5" pullPolicy: Always # nb-operator needs to know the version of msdp and flexsnap operators for webhook # to do version checking msdp-operator: image: tag: "20.5" flexsnap-operator: image: tag: "10.5.0.0.1016" namespace: labels: nb-control-plane: nb-controller-manager nodeSelector: node_selector_key: agentpool node_selector_value: agentpool #loglevel: # "-1" - Debug (not recommended for production) # "0" - Info # "1" - Warn # "2" - Error loglevel: value: "0" flexsnap-operator: replicas: 1 namespace: labels: {} image: name: "veritas/flexsnap-deploy" tag: "10.5.0.1004" pullPolicy: Always nodeSelector: node_selector_key: agentpool node_selector_value: agentpool