Sobes.tech
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).