¿Qué es ConfigMap en Kubernetes y cómo se usa?

| Última modificación: 25 de octubre de 2024 | Tiempo de Lectura: 4 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Existen múltiples herramientas y recursos diseñados para optimizar y personalizar la gestión de tus aplicaciones en contenedores. Uno de estos componentes esenciales es el ConfigMap en Kubernetes, una funcionalidad clave que permite a los desarrolladores gestionar la configuración de las aplicaciones de manera eficiente y dinámica. ¿Pero qué es exactamente un ConfigMap y por qué es tan importante en Kubernetes? En este artículo, exploraremos en detalle qué es un ConfigMap, cuáles son sus características principales y cómo puedes utilizarlo para mejorar la configuración de tus aplicaciones.

ConfigMap en Kubernetes qué es

¿Qué es un ConfigMap en Kubernetes?

La herramienta de ConfigMap en Kubernetes hace referencia a los objetos utilizados con el fin de almacenar datos no confidenciales en el formato clave-valor, lo que permite incluso el almacenamiento de ficheros completos.

Además, es necesario tener en cuenta que un objeto ConfigMap se caracteriza por contribuir a la separación de los procesos de configuración en el interior de un entorno determinado de una imagen de un contenedor. Esto ayuda a que las aplicaciones ejecutadas mejoren de forma notable su portabilidad.

Otro aspecto a destacar es que los recursos pods de Kubernetes tienen la posibilidad de usar los ConfigMaps como variables de entorno, como ficheros de configuración dentro de un volumen o como un tipo de argumento de la línea de comandos.

Características de ConfigMap en Kubernetes

Entre los elementos característicos de ConfigMap en Kubernetes, podemos decir que es un objeto de la Interfaz de Programación de Aplicaciones API, que permite el almacenamiento de la configuración de otros objetos que se usen.

Un ConfigMap también se caracteriza por incluir una sección de data. Esto se utiliza con el objetivo de almacenar ítems que se identifican por una clave y sus valores determinados.

🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴

Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semana

Otras de las características importantes de ConfigMap son:

No ofrece encriptación

Dentro de las características de un ConfigMap en Kubernetes, se encuentra que este no proporciona encriptación, por lo que, si el usuario quiere almacenar datos de tipo confidencial, se recomienda emplear la herramienta de Secrets de Kubernetes para garantizar la seguridad y flexibilidad de la información, o utilizar recursos externos que mantengan los datos seguros y procuren su confidencialidad.

Nombre

En lo que respecta al nombre de un ConfigMap, este debe ser un nombre de subdominio de DNS que sea válido en el sistema. Esto quiere decir que su nombre no puede contener una cifra mayor a 253 caracteres. Del mismo modo, este nombre debe incluir caracteres de tipo alfanumérico en minúsculas, así como “-” o “.”. Además, el nombre del ConfigMap en Kubernetes debe comenzar y terminar con un carácter alfanumérico.

Actualización

Otra de las características de un este objeto de Kubernetes es que, cuando se está usando en un volumen especifico y se actualiza, las claves también se actualizarán de forma automática.

Además de esto, la herramienta del controlador de kubelet se encargará de asegurarse de que el ConfigMap montado se encuentra actualizado para cada uno de los periodos de sincronización; para ello utilizará su caché local y así encontrar el valor actual del objeto.

Inmutabilidad

Kubernetes también ofrece la posibilidad de que los objetos ConfigMap puedan establecerse como inmutables con el objetivo de prevenir actualizaciones indeseadas o accidentales, al tiempo que mejora el rendimiento del clúster del sistema.

Debes tener en cuenta que, cuando un ConfigMap en Kubernetes se marca como inmutable, no se tiene la posibilidad de revertirlo o cambiar el contenido del dato. De manera que este tipo de objetos, una vez se han establecido como inmutables, solo pueden eliminarse o recrearse.

almacenar datos

Usos de ConfigMap en Kubernetes

El objeto ConfigMap en Kubernetes es una herramienta versátil y fundamental dentro del manejo de configuraciones en contenedores y aplicaciones. Te explicaremos sus usos y cómo se implementan:

  1. Configuración de Contenedores en Pods:
    • Propósito: Los ConfigMaps se utilizan principalmente para almacenar datos de configuración que pueden ser consumidos por los contenedores que operan en un pod, permitiendo una gestión centralizada de configuraciones sin necesidad de codificarlas directamente en las imágenes de los contenedores.
    • Implementación: Se crean objetos ConfigMap en el mismo Namespace que el pod y se referencia a ellos en las definiciones del pod para que los contenedores puedan acceder y utilizar la configuración necesaria.
  2. Montaje como volúmenes:
    • Propósito: Además de inyectar configuración directamente a los contenedores, los ConfigMaps pueden montarse como volúmenes dentro de los pods. Esto permite que los archivos de configuración sean accesibles por los contenedores como si fueran parte del sistema de archivos local.
    • Implementación: Para montar un ConfigMap como volumen, se debe hacer referencia a este en la sección .spec.volumes del manifiesto del pod. Cada archivo en el ConfigMap se presenta como un archivo en el volumen.
  3. Uso por otros recursos del sistema:
    • Propósito: Los ConfigMaps también pueden ser utilizados por otros recursos dentro de Kubernetes, no solo por los contenedores directamente. Esto es útil para aplicaciones que necesitan configurar o personalizar otros componentes del sistema, como bases de datos o middleware.
    • Implementación: Otros recursos dentro de Kubernetes pueden referenciar ConfigMaps para su propia configuración sin que estos estén directamente acoplados a un pod específico. Esto facilita la reutilización de configuraciones y la centralización del manejo de variables y parámetros.

Ahora, si te interesa profundizar acerca de esta y otras herramientas del sector tecnológico, no dudes en dar un paso más en esta dirección e inscríbete en nuestro DevOps & Cloud Computing Full Stack Bootcamp para continuar aprendiendo. En unos meses podrás conocer todo lo necesario para convertirte en un experto del sector IT y obtener una ventaja frente a tus competidores. ¡Solicita ahora más información y anímate a apuntarte para transformar tu futuro!

Xoán Mallón

Senior DevOps Engineer en Zscaler & Coordinador del Bootcamp DevOps & Cloud Computing.

Posts más leídos

¡CONVOCATORIA ABIERTA!

DevOps & Cloud Computing

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado