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é).