Sobes.tech
Junior

Šta je ConfigMap u Kubernetesu?

sobes.tech АИ

Одговор од АИ

ConfigMap je objekat API koji se koristi za skladištenje nedavnih podataka u parovima ključ-vrednost u Kubernetes-u. Omogućava odvajanje konfiguracije aplikacije od njenog kontejnerskog slike, čineći aplikacije prenosivijim i pojednostavljujući upravljanje konfiguracijom.

Podaci u ConfigMap-u mogu se koristiti na sledeće načine:

  • Kao promenljive okruženja u kontejneru.
  • Kao argumenti komandne linije za kontejner.
  • Kao fajlovi u volumenu montiranom u Pod.

Primer kreiranja ConfigMap-a iz fajla:

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-config
data:
  my-config-file.properties: |
    database.url=jdbc:mysql://localhost:3306/mydatabase
    database.username=mydbuser
    database.password=secret

Korišćenje ConfigMap-a u Pod-u putem promenljivih okruženja:

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod
spec:
  containers:
  - name: my-app
    image: my-app-image
    env:
    - name: DATABASE_URL
      valueFrom:
        configMapKeyRef:
          name: my-config
          key: database.url
    - name: DATABASE_USERNAME
      valueFrom:
        configMapKeyRef:
          name: my-config
          key: database.username

Korišćenje ConfigMap-a u Pod-u montiranjem kao fajl:

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod
spec:
  containers:
  - name: my-app
    image: my-app-image
    volumeMounts:
    - name: config-volume
      mountPath: /etc/config
  volumes:
  - name: config-volume
    configMap:
      name: my-config

Ključne osobine:

  • Koristi se za nedavane podatke. Za poverljive podatke koriste se Secrets.
  • Omogućava dinamičko ažuriranje konfiguracije bez ponovne izgradnje slike.
  • Podaci u ConfigMap-u su ograničeni u veličini (podrazumevano 1 MB).
  • Neke promene u ConfigMap-u mogu zahtevati restartovanje Pod-a da bi stupile na snagu, u zavisnosti od načina korišćenja (promenljive okruženja zahtevaju restart, montiranje kao fajl može biti dinamično).