Prerequisites
Before you Begin
-
Install kubectl (v 1.19-1.21), the Kubernetes command-line tool.
-
Install Helm (v 3.6.0), the package manager for Kubernetes.
-
Install AWS Command Line Interface (AWS CLI), a unified tool to manage your AWS services.
-
Generate the IAM keys from your AWS Management Console and configure them. IAM users will need the requisite permissions.
Install CSI External-Snapshotter
The CSI external-snapshotter is part of Kubernetes implementation of Container Storage Interface. It is a sidecar that watches the Kubernetes API server for VolumeSnapshot and VolumeSnapshotContent CRD objects and triggers the snapshot creation and deletion against a CSI endpoint.
To install the CSI external-snapshotter, run the following command:
export SNAPSHOTTER_VERSION=v4.1.0 kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/${SNAPSHOTTER_VERSION}/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/${SNAPSHOTTER_VERSION}/client/config/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/${SNAPSHOTTER_VERSION}/client/config/crd/snapshot.storage.k8s.io_volumesnapshots.yaml kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/${SNAPSHOTTER_VERSION}/deploy/kubernetes/snapshot-controller/rbac-snapshot-controller.yaml kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/${SNAPSHOTTER_VERSION}/deploy/kubernetes/snapshot-controller/setup-snapshot-controller.yaml
For more information, see CSI external-snapshotter.
Note: Ensure that the CSI external-snapshotter is installed prior to the Amazon EBS CSI driver. Installation in this sequence avoids potential backup job errors, where backups of stateful application containers are unsuccessful. For more information, see Backup Errors.
Install CSI Driver for Amazon EBS
Druva Controller supports volumes provisioned by the CSI driver for Amazon EBS. To install Amazon EBS CSI driver:
1. Add the aws-ebs-csi-driver helm repository:
helm repo add aws-ebs-csi-driver https://kubernetes-sigs.github.io/aws-ebs-csi-driver
2. Update the available charts:
helm repo update
3. Install the CSI driver (aws-ebs-csi-driver)
helm upgrade --install aws-ebs-csi-driver \ --namespace kube-system \ --set enableVolumeScheduling=true \ --set enableVolumeResizing=true \ --set enableVolumeSnapshot=true \ aws-ebs-csi-driver/aws-ebs-csi-driver
For more information, see Amazon EBS CSI driver.
Git: https://github.com/kubernetes-sigs/aws-ebs-csi-driver
Note: It is recommended that the driver is pre-installed with v1.20 or prior. The installation commands here do not apply to versions v1.21 and later.
Ensure that the Amazon EBS CSI driver is installed prior to triggering a backup. If the EBS volumes or the PVCs are selected for backup with no CSI driver plug-in, Druva Backup Operator backs up only the metadata and catalog. In other words, no snapshot is generated, and only the metadata is uploaded to the S3 bucket and the CloudRanger Backup Store.
Install cert-manager
Install cert-manager, the certificate management for Kubernetes. which manages certificates and certificate issuers as resource types in Kubernetes clusters, thus simplifying the process of obtaining, renewing, and using certificates.
Note: To verify cert-manager compatibility with your cluster, please see Supported Releases.
To install cert-manager, run the following command:
helm upgrade --install cert-manager jetstack/cert-manager \ --namespace cert-manager --create-namespace \ --set webhook.hostNetwork=true,webhook.securePort=10260 \ --set installCRDs=true \ --version v1.1.0
Install Service Catalog
Service Catalog is an extension API that enables applications running in Kubernetes clusters to communicate with service brokers, acting as an intermediary for the Kubernetes API Server to provision and retrieve credentials necessary for the application to use a managed service.
To install Service Catalog, run the following command:
export HELM_EXPERIMENTAL_OCI=1 aws ecr-public get-login-password --region us-east-1 | helm registry login --username AWS --password-stdin public.ecr.aws/w1e8b7v4 helm chart pull public.ecr.aws/w1e8b7v4/backup.druva.com/charts/service-catalog:0.3.1 helm chart export public.ecr.aws/w1e8b7v4/backup.druva.com/charts/service-catalog:0.3.1 helm upgrade --install service-catalog ./catalog \ --namespace service-catalog --create-namespace