Sie sind auf Seite 1von 5

ALMACENAMIENTO CON KUBERNETES

1. Curso de Docker Swarm, Kubernetes y CoreOS Fleet (Actualizado 2017)

2. Kubernetes

3. Almacenamiento con Kubernetes

En Docker los volmenes son simplemente un directorio en un disco o en otro


contenedor. Sin embargo, el ciclo de vida de un volumen Docker esta centrados
en la vida del disco local.

En Kubernetes, un volumen tiene un ciclo de vida explcito, que va en relacin


con la vida pod. El volumen puede sobrevivir al pod, y la informacin es
preservada incluso con el restart de los contenedores. Por supuesto cuando un
pod deja de existir el volumen tambin. De ah, que Kubernetes ofrezca mltiple
tipos de volmenes, cada pod puede usar cualquiera de esos tipos y en la cantidad
deseada.

Un volumen es un directorio con informacin la cual es accesible a travs de los


contenedores del pod. Como ese volumen es creado, que contenido y como se
comporta depender del tipo de volumen. Para especificar el tipo de volumen
utiliza para un pod hay que utilizar el campo spec.volumes y para especificar el
punto de montaje, spec.containers.volumeMounts.

Recuerda que en Docker, un proceso en un contenedor ve el sistema de ficheros


como un conjunto de docker layers y volumenes. La imagen de docker represente
sistema de ficheros raz y los volmenes son montados a posterior en una ruta
determinada. Volmenes no pueden ser montados en otros volmenes o tener
enlaces a otros volumenes. Cada contenedor en un pod puede especificar una ruta
diferente donde montar el volumen.

Tipos de volmenes en Kubernetes:


emptyDir
hostPath
nfs
iscsi
flocker
glusterfs
rbd
gitRepo
secret
downwardAPI
azureFileVolume
awsElasticBlockStore
gcePersistentDisk

emptyDir

Este tipo de volumen es creado cuando un pod es asignado a un nodo, y existir


tanto tiempo como el mismo pod. Inicialmente este volumen esta vaco y permite
a contenedores compartir ficheros. Todos estos puede leer y escribir del volumen.
El punto de montaje puede diferir en los contenedores que usan este volumen.

Con este tipo de volumen es posible usar como dispositivo de almacenamiento la


memoria. S usamos la propiedad emptyDir.medium con valor Memory este se
montar usando tmpfs (RAM filesystem). Este tipo de sistema de almacenamiento
es bastante rpido pero: 1) consume memoria de la maquina; y 2) no mantiene la
informacin.

hostPath

Este volumen monta un fichero o directorio del host en el sistema de ficheros de


tu pod. Ejemplos: pasar /etc/hosts a los contenedores del pod.
nfs

nfs volumen permite montar un nfs share en un pod. A diferencia de emptyDir el


cual es borrado una vez el pod es borrado. El contenido del volumen persiste y el
volumen es simplemente desmontado, umount. Este tipo de volmenes permite
tener mltiple puntos de escritura, la informacin puede ser compartido entre
pods mltiples.

iscsi

Un volumen iSCSI permite montar un volumen existente de tipo iSCSI. Este tipo
persiste una vez que el pod es borrado y la informacin puede ser reutilizada.

Una caracterstica de iSCSI es que puede ser montado como solo lectura y
accedido por mltiples consumidores simultneamente. Sin embargo, este tipo
solo permite tener un consumidor de tipo read-write, as que no hay varios
escritores simultneamente como ocurre con nfs.

glusterfs

Un volumen glusterfs permite usar el sistem de ficheros en red de glusterfs. El


contenido de este volumen permanece despus de borrar el pod. Al igual que nfs,
puede ser montado con mltiples escrituras accediendo simultneamente.

flocker

Flocker es un sistema opensource para gestionar contenedores de datos,


volmenes. Este proporciona una herramienta para gestionar y orquestar la
gestin de nuestros volmenes con soporte para diversos tipos de sistemas de
almacenamiento. En otras palabras, ofrece un sistema agnstico para la gestin
de volmenes en diferentes plataformas.
Un volumen Flocker permite montar un dataset en un pod. Si este volumen no
existe en Flocker control, se crear uno nuevo.

rbd

Es un volumen para Rados Block Device que puede ser montado en tus pods. Al
igual que la mayora, la informacin persiste incluso despus de borrar el pod.
Como iSCSI, solo puede haber un consumidor con derecho a lectura mientras que
no hay limite con consumidores de tipo lectura

gitRepo

A gitRepo es un ejemplo de lo que se puede conseguir con un plugin para


volmenes. Este monta un directorio vacio y clona un repositorio git en el pod
para su uso. En el futuro, este tipo de volmenes debern ser ms independientes
y no depender de la API de kubernetes.

secret

Es un volumen que se utiliza para compartir credenciales en un pod. A travs de


la API de kubernetes podemos almacenar credenciales que luego pueden
montarse como volmenes en los pods. Los volmenes de tipo secret
usan tmpfs (RAM filesystem) por lo que nunca son almacenados en discos
persistentes.

downwardAPI

Este volumen se usa para hacer accesible informacin downward API a las
aplicaciones. Este monta un directorio y escribe las peticiones en forma de
ficheros de texto.
awsElasticBlockStore

Este tipo de volmenes usan el sistema EBS de AWS. Los volmenes tienen que
estar en instancias de tipo AWS, en la misma regin y availability zone para
poder ser utilizados entre contenedores. Solo un contenedor puede ser montado
en una maquina. EBS snapshots es una funcionalidad disponible en AWS
volumes.

Otros aspectos a tener en cuenta con el almacenamiento, en especial con


volmenes de tipo emptyDir y hostPath:

No hay lmite de espacio en disco utilizado.


No hay aislamiento entre contenedores o pods.
Tipo de dispositivo de almacenamiento, tales como discos o SSD, es
determinado por el sistema de ficheros que alberga kubelet.

En el futuro, emptyDir y hostPath tendrs quotas con lo que el espacio de disco


utilizado se limitar.

Das könnte Ihnen auch gefallen