постоянный том kubernetes для nginx не показывает индекс по умолчанию. html файл - PullRequest
0 голосов
/ 04 февраля 2020

Я тестирую что-то с PV и хотел получить разъяснения. У нас есть кластер из 18 узлов (используется Docker EE), и мы смонтировали общий ресурс NFS на каждом из этих узлов, чтобы использовать его для постоянного хранилища k8s. Я создал PV (используя hostPath), чтобы связать его с моим nginx развертыванием (монтирование / usr / share / nginx / html в PV).

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-test-namespace-pv
  namespace: test-namespace
spec:
  storageClassName: manual
  capacity:
    storage: 2Gi
  accessModes:
  - ReadWriteMany
  hostPath:
    path: "/nfs_share/docker/mynginx/demo"

How to create the PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-test-namespace-pvc
  namespace: test-namespace
spec:
  storageClassName: manual
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 2Gi

Файл развертывания:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mynginx
specs:
  selector:
    matchLabels:
      run: mynginx-apps
  replicas:2
  template:
    metadata:
      labels:
        run: mynginx-apps
    spec:
      volumes:
        - name: task-pv-storage
          persistentVolumeClaim:
            claimName: nfs-test-namespace-pvc
      containers:
        - name: mynginx
          image: dtr.midev.spglobal.com/spgmi/base:mynginx-v1
          ports:
            - containerPort: 80
              name: "http-server"
          volumeMounts:
            - mountPath: "/usr/share/nginx/html"
              name: task-pv-storage

Итак, я предполагаю, что когда мой модуль запускает индекс по умолчанию, файл html из образа nginx должен быть доступно в / usr / share / nginx / html в моем модуле, и его также следует скопировать / доступно в моем / nfs_share / mynginx / demo .

Однако я не вижу ни одного файла здесь, и когда я раскрываю это развертывание и получаю доступ к сервису, это дает мне ошибку 403, поскольку индексный файл недоступен. Теперь, когда я создаю файл html либо из модуля, либо из узла на общем ресурсе NFS, смонтированного как PV, он работает, как и ожидалось.

Верно ли мое предположение о том, что файл по умолчанию копируется в путь к хосту? или я что-то упустил?

1 Ответ

0 голосов
/ 04 февраля 2020

Ваш /nfs_share/docker/mynginx/demo не будет доступен в pod, объяснение доступно здесь :

apiVersion: v1
kind: PersistentVolume
metadata:
  name: task-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"

В файле конфигурации указано, что объем равен /mnt/data на узле кластера. Конфигурация также определяет размер 10 гибибайт и режим доступа ReadWriteOnce, что означает, что том может монтироваться как чтение-запись одним узлом. Он определяет имя StorageClass manual для PersistentVolume, которое будет использоваться для привязки запросов PersistentVolumeClaim к этому PersistentVolume.

Вы не видите PV на своем pod, он используется для использования в качестве PVC, который затем может быть смонтирован внутри pod.

. Вы можете прочитать всю статью Настройка модуля для использования PersistentVolume for Storage , который должен ответить на все вопросы.

...