Sobes.tech
Junior

¿Cuál es la diferencia entre secrets y configmaps en Kubernetes?

sobes.tech AI

Respuesta de la IA

Secrets se utilizan para almacenar información sensible, como contraseñas, claves API, certificados. Por defecto, están codificados en base64 (aunque esto no es cifrado en reposo, sino simplemente codificación) y son gestionados por Kubernetes con un nivel de seguridad más alto (por ejemplo, no se muestran directamente en los registros al visualizarlos).

ConfigMaps se utilizan para almacenar información de configuración no sensible de las aplicaciones, como URLs de servicios, configuraciones de registro, archivos de configuración. Se almacenan en forma de pares clave-valor o como archivos completos. Los ConfigMaps no implican ninguna protección adicional de los datos.

Parámetro Secrets ConfigMaps
Propósito Almacenamiento de información sensible Almacenamiento de configuración no sensible
Codificación base64 (por defecto) No
Seguridad Mejorada (no se muestran en registros, etc.) No hay medidas de seguridad específicas
Ejemplos de datos Contraseñas, tokens, claves, certificados Variables de entorno, archivos de configuración

Ambos objetos pueden montarse en los pods como archivos o variables de entorno.

# Ejemplo de montaje de secreto como variable de entorno
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: my-image
    env:
    - name: DB_PASSWORD
      valueFrom:
        secretKeyRef:
          name: my-db-secret
          key: password
# Ejemplo de montaje de ConfigMap como archivo
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: my-image
    volumeMounts:
    - name: config-volume
      mountPath: /etc/config
  volumes:
  - name: config-volume
    configMap:
      name: my-app-config