Мой шаблон openshift с pv, pv c и конфигурацией развертывания выглядит следующим образом:
kind: Template
apiVersion: v1
metadata:
name: okd-static-server.
labels:
template: okd-static-server
objects:
- apiVersion: v1
kind: PersistentVolume
metadata:
name: okd-static-volume
spec:
storageClassName: manual
capacity:
storage: 1Gi
persistentVolumeReclaimPolicy: Retain
accessModes:
- ReadWriteMany
nfs:
path: /mnt/k8smount/static
server: <nfs_server_ip>
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: okd-static-volume
creationTimestamp: null
spec:
storageClassName: manual
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
volumeName: okd-static-volume
- apiVersion: v1
kind: DeploymentConfig
metadata:
creationTimestamp: null
generation: 2
labels:
app: okd-static-server
name: okd-static-server
spec:
replicas: 1
selector:
app: okd-static-server
deploymentconfig: okd-static-server
strategy:
type: Rolling
template:
metadata:
creationTimestamp: null
labels:
app: okd-static-server
deploymentconfig: okd-static-server
spec:
containers:
- image: okd-static-server:dev1.0.0
imagePullPolicy: Always
name: okd-static-server
resources: {}
volumeMounts:
- mountPath: /usr/share/nginx
name: okd-static
restartPolicy: Always
volumes:
- name: okd-static
persistentVolumeClaim:
claimName: okd-static-volume-claim
Образ okd-static-server:dev1.0.0
, который используется выше в конфигурации развертывания, создается с использованием следующего файла dockerfile
FROM nginx:1.16-alpine
RUN mkdir -p /var/run/nginx /var/log/nginx /var/cache/nginx && \
chown -R nginx:0 /var/run/nginx /var/log/nginx /var/cache/nginx && \
chmod -R g=u /var/run/nginx /var/log/nginx /var/cache/nginx
ADD static/ /usr/share/nginx
COPY nginx.conf /etc/nginx/nginx.conf
COPY default.conf /etc/nginx/conf.d/default.conf
ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
USER nginx:nginx
EXPOSE 8000
CMD ["nginx","-g","daemon off;"]
Как упоминалось в приведенном выше файле dockerfile, во время сборки образа docker содержимое stati c копируется в папку /usr/share/nginx
изображения. Папка образа: /usr/share/nginx
монтируется в каталог монтирования nfs /mnt/k8smount/static
, что можно увидеть из приведенного выше шаблона openshift.
Первоначально каталог монтирования nfs будет пустым. Проблема, с которой я сталкиваюсь, заключается в том, что после развертывания встроенного образа с использованием вышеуказанного шаблона openshift каталог nfs mount не имеет ожидаемого содержимого stati c. Вместо этого он пуст.
Примечание. Добавление содержимого вручную в каталог монтирования nfs заполняет содержимое в папке контейнера: /usr/share/nginx
.
Версия Openshift / okd: 3.11