Могу ли я установить разные подпути из одного и того же PV в разные места одного контейнера?
Я запускаю несколько экземпляров WordPress в кластере моей компании Kubernetes. Каждый экземпляр имеет свой собственный том персистентности и контейнер. Единственная особенность моей установки состоит в том, что я монтирую несколько путей PV на несколько путей контейнера.
Все мои контейнеры работали хорошо с тех пор, как пару недель назад мы обновили Kubernetes до текущей версии. С тех пор начался ад.
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:25:46Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
При перезапуске модуля, если он запланирован для запуска на другом узле, он застревает на PodInitializing со следующим сообщением о событии
Ошибка Multi-Attach для тома "pvc-ac6b35f3-7716-11e8-adda-b60483de6a40" Том уже подключен исключительно к одному узлу и не может быть подключен к другому
Вот мои ресурсы.
A Ceph RBD PersistentVolume
Содержит две директории и файл
html/
: каталог с php-файлами
logs/
: каталог с файлами журналов
container-data.txt
: текстовый файл с некоторой информацией
Определяется как:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rbd-wordpress-mysite
labels:
app: wordpress
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
Мой стручок
kind: Deployment
apiVersion: apps/v1beta1
metadata:
name: wordpress-mysite
labels:
app: wordpress
namespace: unibz
spec:
template:
metadata:
name: wordpress-mysite
labels:
app: wordpress
namespace: unibz
spec:
containers:
- name: wordpress-mysite
image: myimage
volumeMounts:
- mountPath: "/root/container-data.txt"
name: wordpress-data
subPath: container-data.txt
- mountPath: "/var/www/html"
name: wordpress-data
subPath: html
- mountPath: "/var/log/apache2"
name: wordpress-data
subPath: logs
ports:
- containerPort: 80
name: wordpress-http
volumes:
- name: wordpress-data
persistentVolumeClaim:
claimName: rbd-wordpress-mysite
- name: wordpress-conf
configMap:
name: wordpress-conf
Это неправильный способ использования постоянства? Может ли это быть причиной ошибки Multi-Attach?