Вот минимальный пример:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: example
spec:
selector:
matchLabels:
app: example
serviceName: example
template:
metadata:
labels:
app: example
spec:
containers:
- name: example
image: nginx:stable-alpine
volumeMounts:
- mountPath: /config
name: example-config
volumes:
- name: example-config
configMap:
name: example-configmap
---
apiVersion: v1
kind: ConfigMap
metadata:
name: example-configmap
data:
a: "1"
b: "2"
В контейнере вы можете найти файлы a
и b
в /config
с содержанием 1
и 2
, соответственно.
Некоторое объяснение: вам не нужен PV C для монтирования configmap в качестве тома на ваши модули. PersistentVolumeClaim
s - это постоянные диски, с которых вы можете читать / записывать. Примером их использования является база данных, такая как Postgres.
ConfigMap
s, с другой стороны, являются структурами ключ-значение только для чтения, которые хранятся в Kubernetes (в его хранилище etcd), которые должны хранить конфигурацию для вашего приложения. Их значения могут быть смонтированы как переменные среды или как файлы, либо по отдельности, либо в целом.