Sobes.tech
Junior

Čo je to ConfigMap v Kubernetes?

sobes.tech AI

Odpoveď od AI

ConfigMap je objekt API, ktorý sa používa na ukladanie nedôverčivých údajov vo formáte kľúč-hodnota v Kubernetes. Umožňuje oddeliť konfiguráciu aplikácie od jej kontajnerového obrazu, čím sa aplikácie stávajú prenosnejšími a správa konfigurácie sa zjednodušuje.

Dáta v ConfigMap môžu byť použité nasledovnými spôsobmi:

  • Ako premenné prostredia v kontejnery.
  • Ako argumenty príkazového riadku pre kontajner.
  • Ako súbory v volume pripojenom k Podu.

Príklad vytvorenia ConfigMap zo súboru:

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

Použitie ConfigMap v Pode cez premenné prostredia:

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

Použitie ConfigMap v Pode montovaním ako súbor:

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

Hlavné vlastnosti:

  • Používa sa na nedôverné údaje. Pre dôverné údaje je potrebné použiť Secrets.
  • Umožňuje dynamicky aktualizovať konfiguráciu bez prebudovania obrazu.
  • Dáta v ConfigMap sú obmedzené veľkosťou (predvolene 1 MB).
  • Niektoré zmeny v ConfigMap môžu vyžadovať reštartovanie Podu, aby nadobudli účinnosť, v závislosti od spôsobu použitia (premenné prostredia vyžadujú reštart, montovanie ako súbor môže byť dynamické).