Под не пишу по локальному пути - PullRequest
0 голосов
/ 20 ноября 2018

Я новичок с контейнерами и кубернетами.Я пытаюсь создать модуль с доступом к локальному каталогу.

Я следовал инструкциям: настроить постоянное хранилище томов

Создан мойПостоянный объем, Постоянное требование объема и мой пакет.

Проблема в том, что tomcat не может записывать в общий каталог

Это постоянный том:

kind: PersistentVolume
apiVersion: v1
metadata:
  name: pv-webapp6
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 3Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/opt/test_tomcat/app"

Это утверждение о постоянном томе:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-webapp6
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

Это стручок кота, которого я пытаюсь создать:

apiVersion: v1
kind: Pod
metadata:
  name: webapp6
spec:
  containers:
  - image: tomcat:8.0
    name: webapp6
    ports:
      - containerPort: 8080
        name: webapp6
    volumeMounts:
    - mountPath: /usr/local/tomcat/webapps
      name: test-volume
  volumes:
  - name: test-volume
    persistentVolumeClaim:
      claimName: pvc-webapp6

Это немного очевидно, но это ошибка в стручке.

[root @ testserver webapp6-test] # kubectl exec -it webapp6 - / bin / bashroot @ webapp6: / usr / local / tomcat # mkdir / usr / local / tomcat / webapps / samplemkdir: не удается создать каталог '/ usr / local / tomcat / webapps / sample': разрешение отклонено

1 Ответ

0 голосов
/ 20 ноября 2018

Проблема в вашем файле yaml PVC, где вы не указываете storageClassName.Следовательно, ПВ и ПВХ не могут быть связаны друг с другом.Пожалуйста, замените файл PVC yaml следующим файлом:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
   name: pvc-webapp6
spec:
   storageClassName: manual
   accessModes:
      - ReadWriteOnce
   resources:
      requests:
         storage: 3Gi

Теперь все должно работать.Надеюсь, это поможет.

Я быстро использовал ваш yaml для развертывания pod, и у меня все работает нормально:

[root@Master admin]# kubectl exec -it webapp6 bash
root@webapp6:/usr/local/tomcat#  mkdir /usr/local/tomcat/webapps/sample 
root@webapp6:/usr/local/tomcat# touch /usr/local/tomcat/webapps/sample/a
root@webapp6:/usr/local/tomcat# ls /usr/local/tomcat/webapps/sample/
a

Теперь, когда я смотрю на хост, я вижу только что созданный a file

[root@Master admin]# ls /opt/test_tomcat/app/sample/
a

Так что, по крайней мере, файлы yaml работают нормально.

...