Junior
Какво е ConfigMap в Kubernetes?
sobes.tech AI
Отговор от AI
ConfigMap е обект на API, който се използва за съхраняване на не конфиденциални данни под формата на двойки ключ-стойност в Kubernetes. Той позволява отделянето на конфигурацията на приложението от неговия контейнерен образ, правейки приложенията по-преносими и улеснявайки управлението на конфигурацията.
Данните в ConfigMap могат да бъдат използвани по следните начини:
- Като променливи на средата в контейнера.
- Като аргументи на командния ред за контейнера.
- Като файлове в том, монтиран в Pod.
Пример за създаване на ConfigMap от файл:
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
Използване на ConfigMap в Pod чрез променливи на средата:
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
Използване на ConfigMap в Pod чрез монтиране като файл:
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
Ключови характеристики:
- Използва се за не конфиденциални данни. За конфиденциални данни трябва да се използват Secrets.
- Позволява динамично обновяване на конфигурацията без преизграждане на образа.
- Данните в ConfigMap са ограничени по размер (по подразбиране 1 МБ).
- Някои промени в ConfigMap може да изискват рестартиране на Pod за да влязат в сила, в зависимост от начина на използване (променливите на средата изискват рестарт, монтирането като файл може да е динамично).