Sobes.tech
Junior

Was ist der Unterschied zwischen Secrets und ConfigMaps in Kubernetes?

sobes.tech KI

Antwort von AI

Secrets werden verwendet, um sensible Informationen zu speichern, wie Passwörter, API-Schlüssel, Zertifikate. Sie sind standardmäßig in base64 codiert (obwohl dies keine Verschlüsselung im Ruhezustand ist, sondern nur eine Kodierung) und werden von Kubernetes mit einem höheren Sicherheitsniveau verarbeitet (z.B. werden sie beim Anzeigen nicht direkt in den Logs angezeigt).

ConfigMaps werden verwendet, um nicht-sensitive Konfigurationsinformationen der Anwendungen zu speichern, wie Service-URLs, Logging-Einstellungen, Konfigurationsdateien. Sie werden als Schlüssel-Wert-Paare oder als ganze Dateien gespeichert. ConfigMaps bieten keinen zusätzlichen Schutz der Daten.

Parameter Secrets ConfigMaps
Zweck Speicherung sensibler Informationen Speicherung nicht-sensibler Konfiguration
Kodierung base64 (standardmäßig) Keine
Sicherheit Erhöht (nicht in Logs angezeigt, etc.) Keine spezifischen Sicherheitsmaßnahmen
Beispiele Passwörter, Tokens, Schlüssel, Zertifikate Umgebungsvariablen, Konfigurationsdateien

Beide Objekte können in Pods als Dateien oder Umgebungsvariablen eingebunden werden.

# Beispiel für das Mounten eines Secrets als Umgebungsvariable
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
# Beispiel für das Mounten eines ConfigMap als Datei
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