Junior
¿Qué es un ConfigMap en Kubernetes?
sobes.tech AI
Respuesta de la IA
ConfigMap es un objeto API utilizado para almacenar datos no confidenciales en pares clave-valor en Kubernetes. Permite separar la configuración de la aplicación de su imagen de contenedor, haciendo que las aplicaciones sean más portátiles y facilitando la gestión de la configuración.
Los datos en ConfigMap se pueden usar de las siguientes maneras:
- En variables de entorno del contenedor.
- Como argumentos de línea de comandos para el contenedor.
- Como archivos en un volumen montado en el Pod.
Ejemplo de creación de ConfigMap desde un archivo:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
my-config-file.properties: |
database.url=jdbc:mysql://localhost:3306/mydatabase
database.username=mydbuser
database.password=secret
Uso de ConfigMap en un Pod a través de variables de entorno:
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
spec:
containers:
- name: my-app
image: my-app-image
env:
- name: DATABASE_URL
valueFrom:
configMapKeyRef:
name: my-config
key: database.url
- name: DATABASE_USERNAME
valueFrom:
configMapKeyRef:
name: my-config
key: database.username
Uso de ConfigMap en un Pod mediante montaje como archivo:
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
spec:
containers:
- name: my-app
image: my-app-image
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: my-config
Características clave:
- Se usa para datos no confidenciales. Para datos confidenciales, se deben usar Secrets.
- Permite actualizar la configuración dinámicamente sin reconstruir la imagen.
- Los datos en ConfigMap están limitados en tamaño (por defecto 1 MB).
- Algunos cambios en ConfigMap pueden requerir reiniciar el Pod para que surtan efecto, dependiendo del método de uso (las variables de entorno requieren reinicio, el montaje como archivo puede ser dinámico).