Documentos de Académico
Documentos de Profesional
Documentos de Cultura
13.openshift - Almacenamiento Persistente
13.openshift - Almacenamiento Persistente
persistente
Volúmenes
- Los ficheros en disco de un contenedor son por defecto Efímeros (ephemeral), lo que significa
que se mueren con el contenedor si este deja de existir.
- En kubernetes y por tanto en Openshift existen distintos tipos de volúmenes:
Efímeros: asociados al tiempo de vida del contenedor.
Persistentes: como dice la palabra persisten, es decir no son borrados cuando muere el
contenedor/es con el que están asociados
Proyectados: mapea varios volúmenes existentes en el mismo directorio*
*si son de los siguientes tipos:
Secret
DownwardAPI
ConfigMap
serviceAccountToken
Almacenamiento persistente (PV)
- ReadWriteOnce:
El volumen puede ser montado para lectura y escritura por un solo nodo.
- ReadOnlyMany:
El volumen puede ser montado solo para lectura por N nodos.
- ReadWriteMany:
El volumen puede ser montado para lectura y escritura por N nodos.
Almacenamiento persistente (PV) - interacción
*Nota: PV creados con provisionamiento dinámico heredan automáticamente la
política de eliminación esstipulada en la StorageClass empleada.
Almacenamiento persistente (PV) - ejemplo
apiVersion: v1
kind: PersistentVolume
metadata:
name: task-pv-volume
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
Solicitudes de almacenamiento persistente (PVC)
apiVersion: "v1"
kind: "PersistentVolumeClaim"
metadata:
name: "claim1"
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "1Gi"
volumeName: "pv0001"
Solicitudes de almacenamiento persistente (PVC) – Ciclo de vida
Se admite soporte
externo:
https://github.com/
kubernetes-sigs/
sig-storage-lib-
external-provisioner
Provisionamiento dinámico
- Para habilitar el provisionamiento dinámico en el cluster los
administradores han de registrar al menos una StorageClass.
- Los usuarios podrán referenciar el uso del provisionamiento
dinámico por medio de la referencia en sus PVCs al nombre de la
clase de almacenamiento (StorageClass) específica.
- Si se desea el comportamiento de provisión dinámica por defecto en
el cluster los administradores han de habilitar (anotar) una
StorageClass por defecto.
Volume Snapshot y Volume Snapshot Content
- Se pueden entender estos dos conceptos de forma similar a los de
volumen persistente y solicitud de volumen persistente.
- Volume Snapshot: es una solicitud de la realización de un snapshot
por un usuario.
- Volume Snapshot Content: es el contenido asociado a una copia
de un volumen en un punto determinado del tiempo.
- Volume Snapshot Class: permite especificar diferentes atributos
pertenecientes a un VolumeSnapshot.
Consumo de volumenes en un contenedor
apiVersion: "v1"
kind: "Pod"
metadata:
name: "mypod"
labels:
name: "frontendhttp"
spec:
containers:
-
name: "myfrontend"
image: openshift/hello-openshift
ports:
-
containerPort: 80
name: "http-server"
volumeMounts:
-
mountPath: "/var/www/html"
name: "pvol"
volumes:
-
name: "pvol"
persistentVolumeClaim:
claimName: "claim1"
Ejercicio 1
- Modifica el siguiente código fuente para gestionar la capa de persistencia
sobre fichero.
Puedes emplear la solución que prefieras, por ejemplo:
Base de datos “In-memory” ubicada en una localización
configurable por propiedades de la app.
1 entidad por fichero.
Todas las entidades almacenadas como contenido en 1 único
fichero.
Etc.
- El objetivo del ejercicio será modificar la aplicación para utilizar un
volumen persistente donde alojar dicha información.
- La información debe perdurar entre distintos despliegues de la aplicación.
https://github.com/jarey-ds/spring-boot-hibernate-dc
Ejercicio 2
- Re-visita el primer anexo del módulo 1 de teoría de este curso.
- Revisa de nuevo la aproximación del provisionador NFS empleado
para proporcionar las diferentes entidades de cluster necesarias
para coordinar provisionamiento dinámico a través de
StorageClasses.
- Con los conceptos aprendidos trata de identificar todas las gestiones
vistas en teoría que se citan en el paso a paso de la configuración.