Data protection, Kubernetes, ciberseguridad e IA. Guías prácticas desde la trinchera: Veeam, Kasten, VMware, Oracle, cloud y lo que sea que esté rompiendo en el homelab esta semana.
Tabla de contenidoTabla de contenido
Una de las opciones que muchas empresas utilizan para alojar sus respaldos es NFS, en esta guia, revisaremos como configurar un Perfil de NFS para ser utilizado por Kasten K10, de acuerdo con las buenas prácticas que se indican en la documentacion de Kasten.
Antes que nada siempre debemos revisar la documentacion de las tecnologias que usaremos para conseguir nuestro objetivo, en este caso utilizaremos Kasten K10 y NFS Subdir External Provisioner, la información oficial la puedes encontrar:
Como cualquier servidor NFS, es necesario crear una carpeta o utilizar una existente para alojar los respaldos, siempre con su respectiva configuración de acceso ya sea por autenticación o permitiendo los accesos por HOST en NFS, por ejemplo en mi QNAP he configurado lo siguiente:
Luego de tener esto configurado, pasaremos a la instalación y configuración del NFS Subdir External Provisioner
Nuevamente, de acuerdo a la documentacion de la solución, lo primero que debemos realizar, es la configuración del repositorio de helm, por tanto debemos ejecutar el siguiente comando:
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
```bash
Para luego realizar la configuración con helm y su respectiva información del servidor NFS a utilizar:
Validación de la instalación con:
```bash
kubectl get pods
```bash
## Configuración StorageClassPara cumplir con los requerimientos de Kasten K10, debemos tener un StorageClass, de hecho, al realizar la instalación y configuración con helm, el StorageClass es creado automáticamente:
```bash
kubectl get sc
```yaml
## Creación de Disco Persistente usando NFSAhora, ya que tenemos todo, debemos probar la creación de PVC utilizando nuestro nuevo StorageClass, para ello ejecutaremos lo siguiente (modificar tamaño y nombre si es necesario):
```yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: prueba-disco-nfs
spec:
storageClassName: nfs-client
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi
```bash
Validar configuración en kubernetes y también en nuestra carpeta compartida NFS:
Ahora eliminaremos este disco para preparar un disco necesario para Kasten K10:
```bash
kubectl delete pvc prueba-disco-nfs
```bash
Ahora crearemos el disco necesario para Kasten K10 en su propio namespace, con el siguiente archivo:
```bash
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: repo-nfs-respaldos
namespace: kasten-io
spec:
storageClassName: nfs-client
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi
```bash
Si listamos los PVC sin namespace, veremos que no existe ninguno:
```bash
kubectl get pvc
```bash
Ahora, si listamos los PVC con el namespace kasten-io veremos nuestro nuevo disco:
```bash
kubectl get pvc -n kasten-io