По умолчанию, когда вы монтируете некоторый том по существующему пути, содержимое этого существующего пути будет скрытым .
Если вы хотите сохранить оба, есть опция под названием subPath
, таким образом вы можете монтировать каждый файл индивидуально, используя один и тот же том:
apiVersion: apps/v1
kind: Deployment
metadata:
name: echo
spec:
selector:
matchLabels:
app: echo
template:
metadata:
labels:
app: echo
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: task-pv-claim
containers:
- name: echo
image: nginx
ports:
- name: http
containerPort: 80
volumeMounts:
- name: task-pv-storage
mountPath: "/usr/share/nginx/html/index.htm"
subPath: "index.htm"
- name: task-pv-storage
mountPath: "/usr/share/nginx/html/teste.html"
subPath: "teste.html"
В этом примере у меня есть только один том с именем task-pv-storage , hostPath
том и в папке есть только 2 файла: teste.yaml
и index.html
, и когда я приму эту конфигурацию, оба файла будут помещены рядом с исходными файлами в контейнере:
$ kubectl exec echo-5955898b58-gvgh9 -- ls /usr/share/nginx/html
50x.html index.htm index.html teste.html
Как видите, это возможно, но будет стоить дополнительной конфигурации, возможно, вы могли бы хранить все файлы только в томе, а не непосредственно в контейнере.
Ссылки
Настройка хранилища томов /
Каталог с несколькими томами kubernetes