Sobes.tech
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ă).