May 9, 2025

Šta je ConfigMap u Kubernetesu?

 ConfigMap je objekat koji služi za čuvanje konfiguracionih podataka (u obliku parova ključ-vrednost), odvojeno od same aplikacije.

Ukratko: ConfigMap = spoljašnja konfiguracija za tvoju aplikaciju.


🧠 Zašto se koristi?

  • Omogućava da aplikacija ostane ista, a konfiguracija se menja bez rekreiranja slike (image-a).

  • Idealno za stvari kao što su:

    • Konfiguracioni fajlovi

    • API ključevi (ne osjetljivi – za sensitive podatke koristi Secret)

    • Promenljive okruženja (env vars)

    • Argumenti komandne linije


📄 Primer ConfigMap fajla:


apiVersion: v1 kind: ConfigMap metadata: name: moja-konfiguracija data: APP_MODE: "production" LOG_LEVEL: "info"

🧩 Kako se koristi?

Možeš je "ubaciti" u Pod na nekoliko načina:

1. ✅ Kao environment promenljive:


spec: containers: - name: moj-kontejner image: myapp envFrom: - configMapRef: name: moja-konfiguracija

U kontejneru ćeš imati promenljive APP_MODE=production, LOG_LEVEL=info.

2. 📁 Kao fajlovi u volume-u:


spec: volumes: - name: config-vol configMap: name: moja-konfiguracija containers: - name: moj-kontejner volumeMounts: - name: config-vol mountPath: /etc/config

Ključevi iz ConfigMap biće fajlovi u /etc/config/.


⚠️ Napomena:

  • ConfigMap nije za sensitive podatke (lozinke, tokeni) → za to koristi Secret.

  • Ako promeniš ConfigMap, moraš restartovati Pod da bi video nove vrednosti (osim ako koristiš reload mehanizam u aplikaciji).


🗺️ Analogija:

Zamisli da ti je aplikacija kao motor, a ConfigMap kao tabla sa dugmićima (parametrima) koje menjaš bez rastavljanja motora.

No comments:

Post a Comment