Zurück zur Übersicht

Begriff

ConfigMap

Kubernetes Configuration S2
2 Quellen 1 Lernpfad 0 Backlinks enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Früher hat man Konfigurationen fest in den Code geschrieben (db_host = "192.168.0.1"). Das ist böse. Dann hat man sie in Dateien (config.ini) neben die .exe gelegt. In Containern ist das schwierig, weil das Dateisystem flüchtig ist. ConfigMap ist die Kubernetes-Lösung, um Konfiguration vom Code zu trennen (12-Factor App Prinzip). Du speicherst deine nginx.conf oder game_settings.json als Objekt in der Kubernetes-Datenbank (etcd). Beim Starten "injizierst" du diese Config in den Pod. Vorteil: Du kannst das gleiche Docker-Image für "Dev", "Test" und "Prod" nutzen, nur mit unterschiedlichen ConfigMaps.

Merksatz: Ein Kubernetes API-Objekt zur Speicherung nicht-sensibler Konfigurationsdaten in Key-Value-Paaren, die Pods als Umgebungsvariablen, Befehlszeilenargumente oder Konfigurationsdateien nutzen können.


Quick-Check

  1. Unterschied zu Secret?
    ConfigMaps sind Klartext. Secrets sind (base64) kodiert und (hoffentlich) verschlüsselt (Encryption at Rest). Passwörter gehören nie in eine ConfigMap!
  2. Was passiert, wenn die ConfigMap fehlt?
    Der Pod startet nicht ("CreateContainerConfigError"), weil er die Env Vars nicht auflösen kann. Er bleibt im Status "Pending" oder "Error", bis du die ConfigMap erstellst.
  3. Binary Data?
    Möglich (binaryData Feld), aber selten genutzt. ConfigMaps sind für Text gedacht.