Volúmenes

En esta página se proporciona una descripción general de los volúmenes en Kubernetes y su uso con Google Kubernetes Engine.

Descripción general

Los archivos en disco en un contenedor son el lugar más simple para que una aplicación escriba datos, pero este enfoque tiene desventajas. Los archivos se pierden cuando el contenedor falla o se detiene por algún motivo. Además, otros contenedores que se ejecutan en el mismo pod no pueden tener acceso a los archivos dentro de un contenedor. La abstracción del volumen de Kubernetes aborda ambos problemas.

En teoría, un volumen es un directorio al que pueden acceder todos los contenedores en un pod. La fuente de volumen declarada en la especificación de pod determina la manera en que se crea el directorio, el medio de almacenamiento utilizado y los contenidos iniciales del directorio. Un pod especifica qué volúmenes contiene y la ruta en la que los contenedores activan el volumen.

Los tipos de volumen efímero tienen la misma duración que sus pods adjuntos. Estos volúmenes se crean cuando se crea el pod y persisten durante los reinicios del contenedor. Cuando el pod termina o se borra, sucede lo mismo con sus volúmenes.

Otros tipos de volumen son interfaces para el almacenamiento duradero que existen independientemente de un pod. A diferencia de los volúmenes efímeros, los datos en un volumen respaldado por el almacenamiento duradero se conservan cuando se quita el pod. El volumen simplemente se desactiva y los datos se pueden transferir a otro pod. Debes usar los recursos PersistentVolume para administrar la duración de los tipos de almacenamiento durables, en vez especificarlos directamente.

Tipos de volúmenes

Los volúmenes difieren en la implementación de almacenamiento y contenido inicial. Puedes elegir la fuente de volumen que mejor se adapte a tu caso práctico. A continuación, se describen varias fuentes de volumen comunes:

emptyDir
Es un tipo de volumen efímero que proporciona un directorio vacío donde los contenedores en el pod pueden leer y escribir. Cuando se quita el pod desde un nodo por cualquier motivo, los datos en emptyDir se borran para siempre. Las fuentes emptyDirs son útiles para espacio temporal y compartir datos entre contenedores en un pod.
configMap
Se utiliza para que las aplicaciones tengan acceso a los datos de configuración. Los archivos en un volumen configMap se especifican con un recurso ConfigMap.
secreto
Se utiliza con el objetivo de que los datos sensibles, como contraseñas, tokens OAuth y llaves SSH, estén disponibles para las aplicaciones.
downwardAPI
Se utiliza con el objetivo de que los datos de Downward API estén disponibles para las aplicaciones. Estos datos incluyen información sobre el pod y el contenedor en el que se ejecuta la aplicación. Por ejemplo, un pod puede configurarse para exponer DownwardAPIVolumeFile a aplicaciones que incluyen el espacio de nombres y la dirección IP del pod.
persistentVolumeClaim
Los operadores del clúster pueden aprovisionar almacenamiento duradero para que usen las aplicaciones. Un pod usa PersistentVolumeClaim para activar un volumen respaldado por este almacenamiento duradero.

Para obtener una lista completa de los tipos de volúmenes, consulta la documentación sobre volúmenes de Kubernetes.

Qué sigue

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Kubernetes Engine