Каков наилучший способ совместного использования/монтирования одного файла в контейнер?
Я подумывал об использовании секретов для монтирования одного файла, но кажется, что вы можете монтировать только тот каталог, который будет перезаписывать все остальное содержимое. Как я могу поделиться одним файлом конфигурации без подключения каталога?
Ответы
Ответ 1
Например, у вас есть configmap, который содержит 2 файла конфигурации:
kubectl create configmap config --from-file <file1> --from-file <file2>
Вы можете использовать subPath, как это, для монтирования одного файла в существующий каталог:
---
volumeMounts:
- name: "config"
mountPath: "/<existing folder>/<file1>"
subPath: "<file1>"
- name: "config"
mountPath: "/<existing folder>/<file2>"
subPath: "<file2>"
restartPolicy: Always
volumes:
- name: "config"
configMap:
name: "config"
---
Полный пример здесь
Ответ 2
Я бы начал с этого рабочего примера из здесь. Убедитесь, что вы используете, по крайней мере, Kubernetes 1.3.
Просто создайте ConfigMap следующим образом:
apiVersion: v1
kind: ConfigMap
metadata:
name: test-pd-plus-cfgmap
data:
file-from-cfgmap: file data
И затем создайте pod, как это:
apiVersion: v1
kind: Pod
metadata:
name: test-pd-plus-cfgmap
spec:
containers:
- image: ubuntu
name: bash
stdin: true
stdinOnce: true
tty: true
volumeMounts:
- mountPath: /mnt
name: pd
- mountPath: /mnt/file-from-cfgmap
name: cfgmap
subPath: file-from-cfgmap
volumes:
- name: pd
gcePersistentDisk:
pdName: testdisk
- name: cfgmap
configMap:
name: test-pd-plus-cfgmap
Ответ 3
В настоящее время (v1.0, v1.1) нет способа установить один файл конфигурации. Секретная структура, естественно, способна представлять несколько секретов, что означает, что она должна быть каталогом.
Когда мы получаем объекты конфигурации, должны поддерживаться отдельные файлы.
В то же время вы можете смонтировать каталог и символическую ссылку на него с вашего изображения, может быть?
Ответ 4
Используйте секреты. Это считается лучшей практикой. Если вы не знаете, как их использовать, посмотрите, что я здесь сделал.
Ответ 5
Все приведенные выше ответы частично верны. Это допустимо для файлов размером менее 1 МБ. Что, если размер файла составляет около 5 МБ (вероятно, файл метаданных). ?
Etcd ограничивает размер конфигураций и секретов до 1 МБ.