Сохраняйте файлы каталога pod при монтировании PV хоста в pod - PullRequest
2 голосов
/ 09 мая 2019

Я хочу подключить hostpath pv к моему каталогу pod, например /usr/share/nginx/html/, и мои файлы в этом каталоге останутся.

У меня есть образ nginx, которыйУ меня есть index.html файл в каталоге /usr/share/nginx/html/.И когда я хочу организовать его с помощью Kubernetes, создать модуль и использовать PV для обеспечения его устойчивости, он монтирует каталог hostpath в контейнер /usr/share/nginx/html/, и после этого мой index.html исчезнет.это мои манифесты

Dockerfile:

FROM nginx
WORKDIR /usr/share/nginx/html
COPY . /usr/share/nginx/html
EXPOSE 80
VOLUME /usr/share/nginx/html

И в моем каталоге . у меня есть index.html

pod.yaml:

kind: Pod
apiVersion: v1
metadata:
  labels:
    app: nginx
  name: task-pv-pod23
spec:
  volumes:
    - name: task-pv-storage2
      persistentVolumeClaim:
       claimName: task-pv-claim2
  containers:
    - name: task-pv-container
      image: meysambbb/nginx:2
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - name: task-pv-storage2
          mountPath: /usr/share/nginx/html/

pv.yaml:

kind: PersistentVolume
apiVersion: v1
metadata:
  name: task-pv-volume2
  labels:
    type: local
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadOnlyMany
  hostPath:
    path: "/mnt/2/data/"

pvc.yaml:


kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: task-pv-claim2
spec:
  accessModes:
    - ReadOnlyMany
  resources:
    requests:
      storage: 3Gi

Когда я запускаю свой модуль без VolumeMount и когда я запускаю curl <POD_IP>, он показывает мой индексСодержимое .html, но когда я использую pv и VolumeMount, это показывает ошибку 403 Можно ли смонтировать hostpath и иметь файлы-контейнеры в одном каталоге?

1 Ответ

0 голосов
/ 09 мая 2019

Являются ли эти данные статичными (вы встраиваете их в образ) или они меняются (вы хотите, чтобы том сохранял их)? Какое поведение вы хотите, когда этот контент изменяется?

Комбинация опций, которые вы пытаетесь указать здесь, не имеет смысла. Kubernetes не делает то, что делает Docker, когда вы монтируете пустой том в контейнер, который заполнен соответствующим содержимым из образа. Тем не менее, если вы сделаете изменение и восстановите образ, ни обычный Docker, ни Kubernetes не изменят объем; он все еще будет иметь старое содержимое.

Моя интуиция для дерева HTML-файлов и связанных с ними ресурсов заключается в том, что оно, вероятно, больше похоже на данные, чем на код, и поэтому я бы использовал простое изображение nginx, скопировав дерево в каталог, который вы монтируете, как путь хоста, и продолжайте в том же духе. Когда это дерево изменится, вы внесете изменения в каталог hostpath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...