ConfigMap ·
Secret ·
environment ·
volumes ·
kubectl commands ·
Best Practices
ConfigMaps und Secrets sind die Standardmethoden in Kubernetes, um Konfigurationsdaten und vertrauliche Informationen von der Anwendungslogik zu trennen und sicher zu verwalten.
ConfigMaps speichern nicht-vertrauliche Konfigurationsdaten in Schlüssel-Wert-Paaren. Sie können als Umgebungsvariablen oder als Dateien in Pods eingebunden werden.
Secrets speichern vertrauliche Daten wie Passwörter, Tokens oder SSH-Schlüssel. Die Daten werden base64-codiert gespeichert und können als Umgebungsvariablen oder Volumes in Pods eingebunden werden.
envFrom macht alle Schlüssel eines ConfigMaps oder Secrets als Umgebungsvariablen im Pod verfügbar. Mit configMapKeyRef und secretKeyRef können Sie einzelne Werte auswählen.
envFrom für große Konfigurationen, aber bedenken Sie: Alle Umgebungsvariablen werden im Pod sichtbar. Für einzelne Werte ist valueFrom präziser.
Volumes binden ConfigMaps und Secrets als Dateien in den Pod ein. Jeder Schlüssel wird zu einer Datei mit dem Schlüssel als Dateiname und dem Wert als Inhalt.
kubectl ist das Kommandozeilen-Tool für die Kubernetes-API. Diese Befehle helfen bei der Erstellung, Abfrage und Verwaltung von ConfigMaps und Secrets.
| Befehl | Beschreibung |
|---|---|
| kubectl create configmap NAME --from-literal=key=value | ConfigMap aus Literal erstellen |
| kubectl create configmap NAME --from-file=file | ConfigMap aus Datei erstellen |
| kubectl create secret generic NAME --from-literal=key=value | Secret aus Literal erstellen |
| kubectl create secret generic NAME --from-file=file | Secret aus Datei erstellen |
| kubectl get configmap | Alle ConfigMaps auflisten |
| kubectl get secret | Alle Secrets auflisten |
| kubectl get configmap NAME -o yaml | ConfigMap als YAML anzeigen |
| kubectl describe configmap NAME | Detaillierte Informationen |
| kubectl edit configmap NAME | ConfigMap bearbeiten |
| kubectl delete configmap NAME | ConfigMap löschen |
kubectl get configmap NAME -o yaml um die vollständige Definition anzusehen. Mit kubectl edit können Sie ConfigMaps und Secrets direkt im Editor ändern.
Best Practices für den sicheren und effizienten Umgang mit ConfigMaps und Secrets in Kubernetes-Produktionsumgebungen.
| Praxis | Beschreibung |
|---|---|
| Encryption at Rest | Secrets in etcd verschlüsseln (EncryptionConfiguration) |
| RBAC | Zugriff auf Secrets mit Rollen beschränken |
| Immutable ConfigMaps | immutable: true für unveränderliche Konfigurationen |
| External Secrets | Secrets aus externen Quellen (Vault, AWS Secrets Manager) beziehen |
| Keine Secrets in Git | Secrets niemals in Git-Repositories speichern |
| Sealed Secrets | Verschlüsselte Secrets für Git mit Sealed Secrets |
| Namespace-Isolierung | ConfigMaps/Secrets im passenden Namespace anlegen |
| Limit-Range | Size-Limits für Secrets setzen |
ConfigMap
Secret
envFrom
Volume
kubectl
Security
kubectl create configmap app-config --from-literal=ENV=prod ·
kubectl create secret generic db-secret --from-literal=password=secret