Appearance
Configuración y secretos
Separar la configuración de la imagen permite reutilizar el mismo artefacto en desarrollo, pruebas y producción. Kubernetes ofrece ConfigMaps para datos de configuración no sensibles y Secrets para datos sensibles.
ConfigMap
Crea un ConfigMap desde un manifiesto:
yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: config-app
data:
LOG_LEVEL: info
API_URL: https://api.ejemplo.comPuedes inyectar sus valores como variables de entorno en un contenedor:
yaml
envFrom:
- configMapRef:
name: config-appEste fragmento se incluye bajo spec.template.spec.containers[]. También es posible mapear claves concretas o montar las entradas del ConfigMap como archivos. Cambiar un ConfigMap consumido como variable de entorno no actualiza automáticamente el entorno de un proceso en ejecución; normalmente se reinicia o se despliega de nuevo el Pod.
Secret
Los Secrets sirven para credenciales y otros valores sensibles:
bash
kubectl create secret generic credenciales-app \
--from-literal=usuario=app \
--from-literal=clave='cambia-esta-clave'Referencia una clave como variable de entorno:
yaml
env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: credenciales-app
key: clavePor defecto, el contenido de un Secret codificado en YAML como data usa Base64: Base64 no es cifrado. Restringe el acceso mediante RBAC y configura cifrado en reposo en el plano de control cuando esté disponible. No subas secretos reales al repositorio; considera un gestor de secretos externo para producción.
ConfigMaps y Secrets tienen alcance de namespace. Crea y referencia ambos recursos en el namespace del Pod que los consume.