8.1 Volúmenes en Kubernetes
Tipos de volúmenes
Los volúmenes nos permiten proporcional almacenamiento a los Pods, y podemos usar distintos tipos que nos ofrecen distintas características:
- Proporcionados por proveedores de cloud: AWS, Azure, GCE, OpenStack, etc
- Propios de Kubernetes:
- configMap: Para usar un configMap como un directorio desde el Pod.
- emptyDir: Volumen efímero con la misma vida que el Pod. Usado como almacenamiento secundario o para compartir entre contenedores del mismo Pod.
- hostPath: Monta un directorio del host en el Pod (usado excepcionalmente, pero es el que nosotros vamos a usar con minikube).
- …
- Habituales en despliegues “on premises”: glusterfs, cephfs, iscsi, nfs, etc.
Trabajando con volúmenes
Al trabajar con volúmenes en Kubernetes se realizan dos funciones claramente diferenciadas:
-
Desde el punto de vista del administrador del cluster de Kubernetes:
El administrador es el responsable de la gestión del almacenamiento en el clúster de k8s. Proporciona almacenamiento a las aplicaciones, entrando a detalle en configurar los diferentes mecanismo, bien proporcionados por el proveedor de cloud o configurados directamente. Para ello gestiona los recursos del cluster llamados PersistentVolume o StorageClasses. Ejemplos:
- Configurar Azure Disk para que pueda usarlo k8s.
- Configurar Cephfs o RBD en la red local para usarlo en k8s.
-
Desde el punto de vista del desarrollador de aplicaciones que van a ser ejecutadas en el cluster de Kubernetes:
A los desarrolladores de aplicaciones les interesa más la disponibilidad y las características del almacenamiento que los detalles sobre el mecanismo de almacenamiento. Para solicitar almacenamiento se va a utilizar el recurso del cluster PersistentVolumeClaim. Ejemplos:
- Quiero 20 GiB de almacenamiento permanente que pueda compartir entre varios Pods de varios nodos en modo lectura.
- Quiero 10 GiB de almacenamiento provisional para usar desde un Pod en modo lectura y escritura.