Junior
Mi az a ConfigMap a Kubernetes-ben?
sobes.tech MI
Válasz az MI-től
A ConfigMap egy API-objektum, amelyet nem bizalmas adatok tárolására használnak kulcs-érték párok formájában Kubernetesben. Lehetővé teszi az alkalmazás konfigurációjának elkülönítését a konténer képétől, így az alkalmazások hordozhatóbbá válnak, és egyszerűbbé teszi a konfiguráció kezelését.
A ConfigMap-ben lévő adatokat a következő módokon lehet használni:
- Konténer környezeti változóként.
- Parancssori argumentumként a konténer számára.
- Fájlokként egy Pod-ba csatolt kötetben.
Példa egy ConfigMap létrehozására egy fájlból:
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
A ConfigMap használata a Pod-ban környezeti változókon keresztül:
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
A ConfigMap használata a Pod-ban fájlként történő csatolással:
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
Fő jellemzők:
- Nem bizalmas adatokhoz használják. Bizalmas adatokhoz Secrets-et kell használni.
- Lehetővé teszi a konfiguráció dinamikus frissítését az újrafelépítés nélkül.
- A ConfigMap-ben lévő adatok mérete korlátozott (alapértelmezett 1 MB).
- Néhány változtatás a ConfigMap-ben újraindítást igényelhet a Pod-ban, a használat módjától függően (a környezeti változók újraindítást igényelnek, a fájlként való csatolás dinamikus lehet).