Junior
Was ist ein ConfigMap in Kubernetes?
sobes.tech KI
Antwort von AI
ConfigMap ist ein API-Objekt, das verwendet wird, um nicht vertrauliche Daten in Schlüssel-Wert-Paaren in Kubernetes zu speichern. Es ermöglicht die Trennung der Anwendungs-Konfiguration von ihrem Container-Image, was die Anwendungen portabler macht und die Konfigurationsverwaltung vereinfacht.
Daten in einem ConfigMap können auf folgende Weisen verwendet werden:
- Als Umgebungsvariablen im Container.
- Als Befehlszeilenargumente für den Container.
- Als Dateien in einem Volume, das in den Pod eingebunden ist.
Beispiel für die Erstellung eines ConfigMap aus einer Datei:
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
Verwendung des ConfigMap im Pod über Umgebungsvariablen:
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
Verwendung des ConfigMap im Pod durch Mounten als Datei:
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
Wichtige Merkmale:
- Wird für nicht vertrauliche Daten verwendet. Für vertrauliche Daten sollten Secrets genutzt werden.
- Ermöglicht die dynamische Aktualisierung der Konfiguration ohne das Neubauen des Images.
- Die Daten in einem ConfigMap sind in der Größe beschränkt (standardmäßig 1 MB).
- Einige Änderungen an einem ConfigMap können einen Neustart des Pods erfordern, um wirksam zu werden, abhängig von der Verwendungsmethode (Umgebungsvariablen erfordern einen Neustart, Mounten als Datei kann dynamisch sein).