ConfigMaps para la configuración
Externalice la configuración de las aplicaciones de las imágenes de contenedor mediante ConfigMaps.
ConfigMaps para la configuración es una lección gratuita de Kubernetes Basics en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kubernetes Basics, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kubernetes Basics incluye 4 lecciones en total.
Introducción a ConfigMaps
Las aplicaciones suelen necesitar datos de configuración, como cadenas de conexión a bases de datos o indicadores de funcionalidad.
Codificar esta información directamente en las imágenes de sus contenedores puede hacer que sean rígidas y difíciles de actualizar.
Los ConfigMaps ofrecen una forma de externalizar y centralizar la configuración no confidencial de su aplicación, manteniendo flexibles sus imágenes.
¿Qué es un ConfigMap?
Un ConfigMap es un objeto de Kubernetes que se utiliza para almacenar datos no confidenciales en pares clave-valor.
Considérelo como un lugar central para la configuración de su aplicación, al que pueden acceder sus Pods.
- Desacoplamiento de la configuración: Separa la configuración del código de la aplicación.
- Flexibilidad: Permite cambiar fácilmente la configuración sin volver a crear las imágenes.
- Portabilidad: Permite trasladar la aplicación entre entornos con distintas configuraciones.
Crear ConfigMaps: imperativo
Puede crear rápidamente un ConfigMap directamente desde la línea de comandos mediante kubectl create configmap.
Este método es ideal para configuraciones sencillas y puntuales o para realizar pruebas rápidas.
Vamos a crear un ConfigMap llamado my-app-config con una configuración del nivel de registro.
kubectl create configmap my-app-config \
--from-literal=log_level=INFOInspeccionar su ConfigMap
Después de crear un ConfigMap, puede consultar sus detalles y verificar su contenido.
Use kubectl get con la opción -o yaml para ver la definición YAML completa, incluidos los datos almacenados.
kubectl get configmap my-app-config -o yamlConfigMap declarativo (YAML)
Para producción y control de versiones, la práctica estándar es definir los ConfigMaps mediante manifiestos YAML.
Este enfoque hace que sus configuraciones sean reproducibles y fáciles de gestionar junto con el código de su aplicación.
Este es un ejemplo de YAML para la configuración de un juego:
apiVersion: v1
kind: ConfigMap
metadata:
name: game-config
data:
game.properties: |
level=easy
player_limit=10
ui.properties: |
theme=dark
language=enAplicar un ConfigMap desde YAML
Para crear el ConfigMap game-config, guarde el contenido YAML de la escena anterior en un archivo (por ejemplo, game-config.yaml).
A continuación, use kubectl apply -f para implementarlo en su clúster.
# Save the YAML to game-config.yaml
kubectl apply -f game-config.yaml
kubectl get configmap game-config -o yamlConfigMaps como variables de entorno
Una forma habitual de que un Pod consuma datos de un ConfigMap consiste en inyectarlos como variables de entorno.
Puede especificar claves individuales que se expondrán o usar envFrom para exponer todos los pares clave-valor de un ConfigMap.
Esto es ideal para configuraciones sencillas de aplicaciones.
apiVersion: v1
kind: Pod
metadata:
name: my-env-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "echo Log Level: $LOG_LEVEL && sleep 3600"]
env:
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: my-app-config
key: log_levelDemostración: Pod con configuración de entorno
Vamos a ejecutar la definición del Pod para ver en acción la variable de entorno LOG_LEVEL.
Guarde el YAML del Pod en env-pod.yaml, aplíquelo y, después, consulte los registros del Pod.
# Save Pod YAML to env-pod.yaml
kubectl apply -f env-pod.yaml
kubectl logs my-env-pod
# Clean up
kubeclt delete pod my-env-podConfigMaps como volúmenes montados
Para las aplicaciones que esperan archivos de configuración (por ejemplo, nginx.conf, application.properties), puede montar un ConfigMap como volumen.
Cada par clave-valor del ConfigMap se convierte en un archivo dentro de la ruta de montaje especificada en el contenedor.
apiVersion: v1
kind: Pod
metadata:
name: my-volume-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "echo 'Contents of game.properties:' && cat /etc/config/game.properties && sleep 3600"]
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: game-configDemostración: Pod con configuración montada
Ahora vamos a implementar un Pod que monte nuestro ConfigMap game-config como volumen.
Guarde el YAML del Pod en volume-pod.yaml, aplíquelo e inspeccione los registros para ver el contenido del archivo montado.
# Save Pod YAML to volume-pod.yaml
kubectl apply -f volume-pod.yaml
kubectl logs my-volume-pod
# Clean up
kubeclt delete pod my-volume-podComprobación rápida: ConfigMaps
¿Cuál de las siguientes afirmaciones sobre los ConfigMaps de Kubernetes es verdadera?
Recapitulación: ConfigMaps
¡Buen trabajo! Ha aprendido cómo los ConfigMaps ayudan a gestionar la configuración en Kubernetes:
- Propósito: Almacenar datos de configuración no confidenciales como pares clave-valor.
- Creación: De forma imperativa con
kubectl createo declarativa mediante YAML. - Consumo: Como variables de entorno o archivos montados dentro de los Pods.
- Ventaja: Desacopla la configuración del código de la aplicación, lo que mejora la flexibilidad.
A continuación, exploraremos cómo gestionar información confidencial de forma segura mediante los Secrets de Kubernetes.
Preguntas frecuentes
¿La lección «ConfigMaps para la configuración» es gratis?
Sí — el texto completo de «ConfigMaps para la configuración» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kubernetes Basics, actualiza a CoddyKit PRO. El curso de Kubernetes Basics incluye 4 lecciones en total.
¿Qué aprenderé en «ConfigMaps para la configuración»?
Externalice la configuración de las aplicaciones de las imágenes de contenedor mediante ConfigMaps. Practicas Kubernetes Basics con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Kubernetes Basics?
No se requiere experiencia previa. Kubernetes Basics en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «ConfigMaps para la configuración»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Kubernetes Basics?
Sí. Cada lección de Kubernetes Basics incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- ConfigMaps para la configuración
- Secrets para datos confidenciales
- Volúmenes persistentes y solicitudes de almacenamiento
- StorageClasses y aprovisionamiento dinámico