Sobes.tech
Junior

Co je to ConfigMap v Kubernetes?

sobes.tech AI

Odpověď od AI

ConfigMap je objekt API, který se používá k ukládání nedůvěrných dat ve formě párů klíč-hodnota v Kubernetes. Umožňuje oddělit konfiguraci aplikace od jejího obrazu kontejneru, což činí aplikace přenosnějšími a zjednodušuje správu konfigurace.

Data v ConfigMap lze použít následujícími způsoby:

  • Jako proměnné prostředí v kontejneru.
  • Jako argumenty příkazového řádku pro kontejner.
  • Jako soubory v volume připojeném k Podu.

Příklad vytvoření ConfigMap ze souboru:

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žití ConfigMap v Podu přes proměnné prostředí:

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žití ConfigMap v Podu přes připojení jako soubor:

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žívá se pro nedůvěrná data. Pro důvěrná data by měly být použity Secrets.
  • Umožňuje dynamicky aktualizovat konfiguraci bez přestavby obrazu.
  • Data v ConfigMap jsou omezená velikostí (výchozí 1 MB).
  • Některé změny v ConfigMap mohou vyžadovat restart Podu, aby se projevily, v závislosti na způsobu použití (proměnné prostředí vyžadují restart, připojení jako soubor může být dynamické).