ConfigMaps und Secrets
Verwalten Sie Konfigurationsdaten und vertrauliche Informationen in Ihren Kubernetes-Deployments mithilfe von ConfigMaps und Secrets sicher.
ConfigMaps und Secrets ist eine kostenlose Docker & DevOps Fundamentals-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Docker & DevOps Fundamentals-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Docker & DevOps Fundamentals-Kurs umfasst insgesamt 4 Lektionen.
Einführung in ConfigMaps und Secrets
Willkommen! In dieser Lektion lernen Sie, wie Sie Konfigurationsdaten und vertrauliche Informationen in Kubernetes verwalten. Wir sehen uns ConfigMaps und Secrets an, zwei wichtige Werkzeuge für flexible und sichere Anwendungsbereitstellungen.

Warum Konfigurationen auslagern?
Stellen Sie sich vor, Sie hinterlegen Datenbankzugangsdaten oder API-Schlüssel direkt im Docker-Image Ihrer Anwendung. Dadurch werden Aktualisierungen erschwert und vertrauliche Daten offengelegt.
- Unflexibilität: Änderungen erfordern eine Neuerstellung des Images.
- Sicherheitsrisiko: Vertrauliche Daten sind fest im Image enthalten.
- Umgebungsspezifisch: Verschiedene Umgebungen (Entwicklung, Produktion) benötigen unterschiedliche Einstellungen.
ConfigMaps: Nicht vertrauliche Daten
Eine ConfigMap ist ein Kubernetes-Objekt zum Speichern nicht vertraulicher Konfigurationsdaten als Schlüssel-Wert-Paare. Sie können sie sich als zentralen Ort für die Einstellungen Ihrer Anwendung vorstellen, etwa für Protokollierungsstufen oder API-Endpunkte.
Sie entkoppelt die Konfiguration vom Anwendungscode und macht Ihre Deployments portabler und einfacher zu verwalten.
Eine ConfigMap definieren
Sie können eine ConfigMap aus Literalwerten, Dateien oder Verzeichnissen erstellen. Hier sehen Sie ein einfaches Beispiel in einer YAML-Datei:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-app-config
data:
log_level: "INFO"
api_endpoint: "http://myapi.example.com"ConfigMap als Umgebungsvariablen
Nach der Erstellung kann ein Pod die Daten einer ConfigMap als Umgebungsvariablen verwenden. Dies ist eine gängige Methode, um Ihrer Anwendung Einstellungen zu übergeben.
So verwendet ein Pod unsere my-app-config:
apiVersion: v1
kind: Pod
metadata:
name: configmap-env-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "echo Log Level: $LOG_LEVEL; echo API: $API_ENDPOINT"]
env:
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: my-app-config
key: log_level
- name: API_ENDPOINT
valueFrom:
configMapKeyRef:
name: my-app-config
key: api_endpoint
restartPolicy: NeverConfigMap als eingebundene Dateien
Alternativ können die Daten einer ConfigMap als Dateien in Ihren Container eingebunden werden. Jedes Schlüssel-Wert-Paar wird zu einer Datei, wobei der Schlüssel als Dateiname und der Wert als Inhalt verwendet wird.
Das ist nützlich für Konfigurationsdateien, die Ihre Anwendung an einem bestimmten Pfad erwartet.
apiVersion: v1
kind: Pod
metadata:
name: configmap-file-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "cat /etc/config/log_level; cat /etc/config/api_endpoint"]
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: my-app-config
restartPolicy: NeverSecrets: Vertrauliche Daten
Secrets ähneln ConfigMaps, sind jedoch für vertrauliche Daten wie Passwörter, API-Schlüssel oder TLS-Zertifikate vorgesehen. Kubernetes unterstützt Sie dabei, diese sicher zu verwalten und zu verteilen.
Während ConfigMaps Daten im Klartext speichern, sind Secrets base64-codiert. Das ist KEINE Verschlüsselung, verhindert jedoch eine versehentliche Offenlegung.
Ein Secret definieren
Beim Erstellen eines Secrets müssen die Werte base64-codiert sein. Zum Codieren können Sie echo -n 'my-password' | base64 verwenden.
Hier sehen Sie ein Beispiel für ein Datenbankpasswort:
apiVersion: v1
kind: Secret
metadata:
name: db-credentials
type: Opaque
data:
username: YWRtaW4= # base64 of 'admin'
password: c3VwZXJzZWNyZXRwYXNz # base64 of 'supersecretpass'Secrets in Pods verwenden
Pods verwenden Secrets weitgehend auf dieselbe Weise wie ConfigMaps: als Umgebungsvariablen oder eingebundene Dateien. Kubernetes decodiert sie automatisch, bevor sie dem Container zur Verfügung gestellt werden.
Aus Sicherheitsgründen ist die Verwendung als eingebundene Dateien im Allgemeinen vorzuziehen, da Umgebungsvariablen leichter protokolliert oder untersucht werden können.
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: my-app-container
image: busybox
command: ["sh", "-c", "echo DB User: $DB_USERNAME; echo DB Pass: $DB_PASSWORD"]
env:
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: db-credentials
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-credentials
key: password
restartPolicy: NeverBewährte Sicherheitspraktiken
Denken Sie daran: Base64-Codierung ist keine Verschlüsselung. Für eine echte Verschlüsselung im Ruhezustand benötigen Sie möglicherweise ein Kubernetes-Backend für Secrets (wie Vault) oder nutzen KMS-Dienste eines Cloud-Anbieters.
- RBAC: Kontrollieren Sie, wer auf Secrets zugreifen kann.
- Geringstmögliche Berechtigungen: Gewähren Sie Pods nur Zugriff auf die Secrets, die sie benötigen.
- Eingebundene Dateien: Ziehen Sie das Einbinden von Secrets als Dateien gegenüber Umgebungsvariablen vor.
Kurze Überprüfung der Konfiguration
Sie müssen einen API-Schlüssel (vertraulich) und eine Einstellung für die Protokollierungsstufe (nicht vertraulich) Ihrer Anwendung in Kubernetes speichern.
Welche Kubernetes-Objekte sollten Sie jeweils verwenden?
Rückblick: ConfigMaps und Secrets
Sehr gut! Sie haben gelernt, wie Sie Anwendungskonfigurationen und vertrauliche Daten in Kubernetes verwalten.
- ConfigMaps: Speichern nicht vertrauliche Schlüssel-Wert-Paare.
- Secrets: Speichern vertrauliche Daten (base64-codiert).
- Beide können von Pods als Umgebungsvariablen oder eingebundene Dateien verwendet werden.
- Befolgen Sie beim Umgang mit vertraulichen Informationen stets bewährte Sicherheitspraktiken.
Als Nächstes können Sie sich mit fortgeschrittenen Sicherheitsthemen wie RBAC und Lösungen zur externen Secret-Verwaltung beschäftigen.
Häufig gestellte Fragen
Ist die Lektion „ConfigMaps und Secrets“ kostenlos?
Ja — der vollständige Text von „ConfigMaps und Secrets“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Docker & DevOps Fundamentals-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Docker & DevOps Fundamentals-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „ConfigMaps und Secrets“?
Verwalten Sie Konfigurationsdaten und vertrauliche Informationen in Ihren Kubernetes-Deployments mithilfe von ConfigMaps und Secrets sicher. Du übst Docker & DevOps Fundamentals mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Docker & DevOps Fundamentals zu starten?
Keine Vorkenntnisse erforderlich. Docker & DevOps Fundamentals auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „ConfigMaps und Secrets“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Docker & DevOps Fundamentals-Lektion Code schreiben und ausführen?
Ja. Jede Docker & DevOps Fundamentals-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Deployments für zustandslose Apps
- Services für den Netzwerkzugriff
- ConfigMaps und Secrets
- Ingress und externes Routing