Skip to content

Czym są Config Map w Kubernetes?

Jest to sposób na definiowanie zmiennych środowiskowych, parametrów konfiguracyjnych lub nawet całych konfiguracji dostarczanych do Podów w formie plain textu.

ConfigMap możemy podpinać do sekcji spec.containers.envFrom.configMapRef, a także do woluminów.

Jak odbywa się dostarczanie Config Map do Poda?

1. Tworzymy ConfigMap 2. Przypinamy ją do Poda/kontenera

Definicja Config Map

ConfigMap ze zmiennymi key-value

Definicja ConfigMap:

apiVersion: v1
kind: ConfigMap
metdata:
    name: <configmap_name>
data:
    <KEY>:<VALUE>
    <KEY2>:<VALUE>

Definicja Pod:

apiVersion: v1
kind: Pod
metadata:
    name: <pod_name>
spec:
    containers:
        - name: <container_name>
          image: <container_image>
          envFrom:
              - configMapRef:
                    name: <configmap_name>

ConfigMap jako wolumin

Definicja w Podzie:

...
volumes:
    - name: <configmap-volume_name>
      configMap:
          - name: <configmap_name>

Pojedynczy pobrany klucz-wartość spośród wielu zmiennych z ConfigMap

apiVersion: v1
kind: ConfigMap
metdata:
    name: <configmap_name>
data:
    <KEY>:<VALUE>
    <KEY2>:<VALUE>

Definicja w Podzie:

containers:
    - env:
        - name: APP_COLOR
          valueFrom:
              configMapKeyRef:
                name: webapp-config-map
                key: APP_COLOR

Przypięcie ConfigMap do Poda (kontenera)

Domyślnie ConfigMapę przypina się do kontenera wewnątrz Poda. W przykładzie poniżej odbędzie się podpięcie ConfigMap o nazwie simple-app-config.

Definicja ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
    name: simple-app-config
data:
    APP_VERSION: v2
    APP_TEST_USER: admin

Definicja Poda:

apiVersion: v1
kind: Pod
metadata:
    name: simple-pod
spec:
    containers:
        - name: container-name-one
          image: nginx
          envFrom:
              - configMapRef:
                    name: simple-app-config

Podstawowe polecenia

Pobranie zdefiniowanych ConfigMap

kubectl get configmaps

Pobranie szczegółów odnośnie ConfigMap

kubectl describe configmaps