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