Skip to main content
  1. Blog/

How to Configure NFS Repository for Kasten K10

··665 words·4 mins·
Author
Marco Escobar
Data protection, Kubernetes, cybersecurity and AI. Hands-on guides from the trenches: Veeam, Kasten, VMware, Oracle, cloud, and whatever I’m breaking in the homelab this week.
Table of Contents
How to Configure NFS Repository for Kasten K10 — screenshot 1

One of the options that many companies use to host their backups is NFS, in this guide, we will review how to configure an NFS Profile to be used by Kasten K10, in accordance with the good practices that are indicated in the documentation of Kasten.

Documentation
#

First of all we must always review the documentation of the technologies that we will use to achieve our objective, in this case we will use Kasten K10 and NFS Subdir External Provisioner, the official information can be found:

Requirements
#

For the use of NFS as a profile in Kasten K10, as the documentation indicates, we will need to comply with the following:

  • NFS service accessible from all nodes where it is installed K10
  • A shared folder via NFS, which can be mounted on all nodes where it is installed K10
  • A PV defining the NFS shared folder
  • A PVC with its respective StorageClassName for k10

Complying with the previous requirements we will have our NFS profile correctly configured to host our backups.

NFS Folder Configuration
#

Like any NFS server, it is necessary to create a folder or use an existing one to host the backups, always with its respective access configuration either by Authentication or allowing access by HOST in NFS, for example in my QNAP I have configured the following:

How to Configure NFS Repository for Kasten K10 — screenshot 2

After having this configured, we will move on to the installation and configuration of the NFS Subdir External Provisioner

Installing NFS Subdir External Provisioner
#

Again, according to the solution documentation, the first thing we must do is configure the helm repository, so we must execute the following command:

helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/

```bash



How to Configure NFS Repository for Kasten K10 — screenshot 3
To then configure with helm and its respective information of the NFS server to use:
How to Configure NFS Repository for Kasten K10
Validation of the installation with: ```bash kubectl get pods ```bash
How to Configure NFS Repository for Kasten K10 — screenshot 4
## Storage Class Configuration To meet the requirements of Kasten K10, we must have a StorageClass, in fact, when installing and configuring with helm, the StorageClass is created automatically: ```bash kubectl get sc ```yaml
How to Configure NFS Repository for Kasten K10 — screenshot 5
## Creating Persistent Disk using NFS Now, since we have everything, we must test the creation of the PVC using our new StorageClass, for this we will execute the following (modify size and name if necessary): ```yaml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: prueba-disco-nfs spec: storageClassName: nfs-client accessModes: - ReadWriteMany resources: requests: storage: 100Gi ```bash
How to Configure NFS Repository for Kasten K10 — screenshot 6
Validate configuration in kubernetes and also in our NFS shared folder:
How to Configure NFS Repository for Kasten K10 — screenshot 7
How to Configure NFS Repository for Kasten K10 — screenshot 8
We will now delete this disk to prepare a disk needed for Kasten K10: ```bash kubectl delete pvc prueba-disco-nfs ```bash
How to Configure NFS Repository for Kasten K10 — screenshot 9
Now we will create the necessary disk for Kasten K10 in its own namespace, with the following file: ```bash kind: PersistentVolumeClaim apiVersion: v1 metadata: name: repo-nfs-respaldos namespace: kasten-io spec: storageClassName: nfs-client accessModes: - ReadWriteMany resources: requests: storage: 100Gi ```bash
How to Configure NFS Repository for Kasten K10 — screenshot 10
If we list the PVCs without namespace, we will see that none exist: ```bash kubectl get pvc ```bash
How to Configure NFS Repository for Kasten K10 — screenshot 11
Now, if we list the PVCs with the namespace kasten-io we will see our new disk: ```bash kubectl get pvc -n kasten-io
How to Configure NFS Repository for Kasten K10 — screenshot 12

NFS profile configuration Kasten K10
#

Now, we will enter the console Kasten K10 in the cluster that we configured our NFS, entering the name of the PVC:

How to Configure NFS Repository for Kasten K10 — screenshot 13

We validate the configuration:

How to Configure NFS Repository for Kasten K10 — screenshot 14

We will now test a backup to this new NFS profile to host the backups.

Test Run Backup to NFS
#

For this, we just need to create some backup policy using our new profile:

How to Configure NFS Repository for Kasten K10 — screenshot 15

Then we Execute it and wait for the completion:

How to Configure NFS Repository for Kasten K10 — screenshot 16

We validate the backup in our NFS:

How to Configure NFS Repository for Kasten K10 — screenshot 17

And finally a recovery test in another namespace in this case, nfspacman:

How to Configure NFS Repository for Kasten K10 — screenshot 18

In the dashboard of Kasten k10 we will see:

How to Configure NFS Repository for Kasten K10 — screenshot 19

And in kubernetes:

How to Configure NFS Repository for Kasten K10 — screenshot 20

And finally the pacman application working as expected:

How to Configure NFS Repository for Kasten K10 — screenshot 21
How to Configure NFS Repository for Kasten K10 — screenshot 22

Related posts#

Related