Kubernetes Persistent Volume не разделяется при загрузке файла с помощью Django и Nginx

Я создал 2 постоянных тома, один для статических файлов, а другой для медиафайлов.

Статические файлы работают отлично, nginx обслуживает данные.

Для медиа-тома nginx не видит загруженный файл и содержимое тома не обновляется. Конфигурация nginx в порядке. Расположение работает, но том не содержит загруженного файла.

Вот мои медиа pv и pvc:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: mediafiles-pv
spec:
  storageClassName: manual
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: "/usr/src/app/backend/media"
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mediafiles-pvc
  namespace: default
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  volumeName: mediafiles-pv

Вот мое развертывание для бэкенда (django):

apiVersion: apps/v1
kind: Deployment
metadata:
  name: backend
  labels:
    app: backend
spec:
  replicas: 1
  selector:
    matchLabels:
      app: backend
  template:
    metadata:
      labels:
        app: backend
    spec:
      volumes:
        - name: staticfiles
          persistentVolumeClaim:
            claimName: staticfiles-pvc
        - name: mediafiles
          persistentVolumeClaim:
            claimName: mediafiles-pvc
      containers:
        - name: backend
          image: loopedupl/backend:latest
          imagePullPolicy: Always
          ports:
            - containerPort: 8000
          volumeMounts:
            - name: staticfiles
              mountPath: "/usr/src/app/backend/static"
            - name: mediafiles
              mountPath: "/usr/src/app/backend/media"

и для nginx:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      volumes:
        - name: staticfiles
          persistentVolumeClaim:
            claimName: staticfiles-pvc
        - name: mediafiles
          persistentVolumeClaim:
            claimName: mediafiles-pvc
      containers:
        - name: nginx
          image: loopedupl/nginx:latest
          imagePullPolicy: Always
          ports:
            - containerPort: 80
          volumeMounts:
            - name: staticfiles
              mountPath: "/usr/src/app/backend/static"
            - name: mediafiles
              mountPath: "/usr/src/app/backend/media"

При обращении к django pod я вижу загруженный файл в этой директории. При обращении к nginx pod данные отсутствуют. Папка media пуста.

При локальном использовании на docker-compose все выглядит нормально.

Не вижу разницы между медиа и статическим объемом.

Вернуться на верх