Сбой MountVolume.SetUp для тома "mongo-two": lstat / var / lib / mongo: такого файла или каталога нет - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь заставить работать диаграмму mongo-replicaset.

Kubelet сообщает об этой ошибке при развертывании диаграммы mongo-replicaset:

MountVolume.SetUp failed for volume "mongo-two": lstat /mongo/data: no such file or directory

На каждом узле, папка / mongo / data существует , сводит меня с ума.Примечание: на узлах команда lstat не существует, но я подозреваю, что контейнер kubelet принес ее.enter image description here

У меня есть 3 постоянных тома:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: mongo-[one/two/three]
spec:
  capacity:
    storage: 40Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /mongo/data
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - [one/two/three]

StatefulSet yaml: (диаграмма управления mongo-replicaset 3.8.0)

...
  volumeMounts:
    - mountPath: /data/db
      name: datadir
...
  volumeClaimTemplates:
  - metadata:
      creationTimestamp: null
      name: datadir
    spec:
      accessModes:
      - ReadWriteOnce
      storageClassName: local-storage
      resources:
        requests:
          storage: 40Gi
...

По-прежнему нет «такого каталога» в существующем каталоге. Что не так?При необходимости могу предоставить дополнительные данные.

Спасибо вам

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Проблема возникла в контейнере kubelet (из-за установки Rancher).

Я добавляю определение тома в контейнеры kubelet, и все нормально.

Для тех, кто заинтересован в создании постоянного локального тома вустановка Rancher - Kubernetes, просто добавьте это в ваш кластерный yaml, чтобы kubelet смог смонтировать ваш том:

services:
  kubelet:
    extra_binds:
       - /path_to_mount:/path_to_mount:rshared

не забудьте две точки rshared.

0 голосов
/ 06 декабря 2018

В вашем наборе состояний у вас должен быть поставщик томов с полем subPath.Если вы удалите это поле subPath из yaml-файла statefulset, вы не столкнетесь с этой ошибкой.

Проблема заключается в том, что в поставщике томов hostpath обнаружена ошибка с «lstat: нет такого файла или каталога»если в развертывании / statefulset присутствует поле подпути, даже если поле пустое.Эта ошибка не позволяет Statefulset подойти и они входят в containerCreatingConfigErr (случилось со мной на kubeadm)

Для получения дополнительной информации вы можете посетить эту ссылку

https://github.com/kubernetes/minikube/issues/2256

...