Sobes.tech
Junior

Kas yra ConfigMap Kubernetes?

sobes.tech AI

Atsakymas iš AI

ConfigMap yra API objektas, naudojamas nekonfidencialiems duomenims saugoti Kubernetes'e kaip raktas-verčio poros. Jis leidžia atskirti programos konfigūraciją nuo konteinerio vaizdo, tai daro programas labiau perkeliamas ir supaprastina konfigūracijos valdymą.

ConfigMap duomenis galima naudoti šiais būdais:

  • kaip aplinkos kintamuosius konteineryje.
  • kaip komandų eilutės argumentus konteineryje.
  • kaip failus, montuojamus į Pod.

Pavyzdys, kaip sukurti ConfigMap iš failo:

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

Naudojimas ConfigMap Pod'e per aplinkos kintamuosius:

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

Naudojimas ConfigMap montuojant kaip failą:

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

Pagrindinės savybės:

  • naudojamas nekonfidencialiems duomenims. Konfidencialiems duomenims naudokite Secrets.
  • leidžia dinamiškai atnaujinti konfigūraciją be konteinerio perstatymo.
  • duomenų dydis yra ribotas (paprastai iki 1 MB).
  • kai kurie pakeitimai ConfigMap gali reikalauti Pod perkrovimo jų taikymui (aplinkos kintamieji reikalauja perkrovimo, montavimas kaip failas gali būti dinamiškas).