Junior
Ce este ConfigMap în Kubernetes?
sobes.tech AI
Răspuns de la AI
ConfigMap este un obiect API utilizat pentru stocarea datelor non-confidențiale sub formă de perechi cheie-valoare în Kubernetes. Permite separarea configurației aplicației de imaginea containerului, făcând aplicațiile mai portabile și simplificând gestionarea configurației.
Datele din ConfigMap pot fi utilizate în următoarele moduri:
- Ca variabile de mediu în container.
- Ca argumente de linie de comandă pentru container.
- Ca fișiere într-un volum montat în Pod.
Exemplu de creare a unui ConfigMap dintr-un fișier:
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
Utilizarea ConfigMap în Pod prin variabile de mediu:
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
Utilizarea ConfigMap în Pod prin montarea ca fișier:
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
Caracteristici principale:
- Este utilizat pentru date neconfidențiale. Pentru date confidențiale, se folosesc Secrets.
- Permite actualizarea dinamică a configurației fără a reconstrui imaginea.
- Datele din ConfigMap sunt limitate în dimensiune (implicit 1 MB).
- Unele modificări ale ConfigMap pot necesita repornirea Pod-ului pentru a avea efect, în funcție de metoda de utilizare (variabilele de mediu necesită repornire, montarea ca fișier poate fi dinamică).