Том Kubernetes hostPath не показывает файлы - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь создать PersistentVolume для совместного использования каталога на master (не на узлах) с модулями, для этого я использую следующий .yaml:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: "/home/myhostuser/shared"

И у меня есть следующий файл .yaml для развертывания, где я пытаюсь использовать вышеприведенный общий ресурс следующим образом:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  selector:
    matchLabels:
      app: my-app
      replicas: 1
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: my-app-image 
        volumeMounts:
         - mountPath: /shared_host_path
           name: my-volume
        securityContext:
          privileged: true      
        ports:
        - containerPort: 5000
      volumes:
      - name: my-volume
        hostPath: 
        # directory location on host
          path: "/home/myhostuser/shared/"

Когда я пытаюсь запустить ls /home/myhostuser/shared на хосте как только я вижу файлы, но когда я запускаю ls /shared_host_path внутри pod , я не вижу файлов.

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 27 апреля 2020

Определите PV C как показано ниже

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: task-pv-claim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 3Gi

И используйте PV C при развертывании, как показано ниже

  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
        claimName: task-pv-claim
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/shared_host_path"
          name: task-pv-storage

https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/

1 голос
/ 27 апреля 2020

если вы хотите иметь том на главном устройстве, вы должны указать это в спецификации persistentVolume, например:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  local:
    path: /home/myhostuser/shared
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - master

- так планировщик Kubernetes понимает, что этот PersistentVolume привязан к конкретному c узел

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