首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >库伯内特斯- MountVolume.NewMounter初始化失败的卷“<卷-名称>”:路径不存在

库伯内特斯- MountVolume.NewMounter初始化失败的卷“<卷-名称>”:路径不存在
EN

Stack Overflow用户
提问于 2021-07-23 18:00:01
回答 3查看 4.6K关注 0票数 6

我正在尝试使用使用WSL的本地存储来设置本地持久卷。但是pod状态在Pending上停止。

kubectl describe pod <pod-name>给出以下错误。

Warning FailedMount 21s (x7 over 53s) kubelet MountVolume.NewMounter initialization failed for volume "pv1" : path "/mnt/data" does not exist

路径/mnt/data已经创建并存在于本地机器上,但容器无法访问该路径。

和豆荚和持久的体积配置如下。

代码语言:javascript
运行
复制
apiVersion : v1
kind : PersistentVolume
metadata :
   name : pv1
spec :
  capacity :
    storage : 2Gi
  accessModes :
    - ReadWriteOnce
  persistentVolumeReclaimPolicy : Retain
  storageClassName : local-storage
  local : 
    fsType : ext4
    path : /mnt/data
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - node1

---

apiVersion : v1
kind : PersistentVolumeClaim
metadata : 
  name : pvc1
spec :
  resources :
    requests :
      storage : 1Gi
  accessModes :
    - ReadWriteOnce
  storageClassName : local-storage

---

apiVersion : v1
kind : Pod
metadata :
  name : pod1
spec :
  containers:
  - name: www
    image: nginx:alpine
    ports:
      - containerPort: 80
        name: www
    volumeMounts:
      - name: www-store
        mountPath: /usr/share/nginx/html
  volumes :
    - name : www-store
      persistentVolumeClaim :
        claimName : pvc1

任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-07-23 18:19:21

您正在使用nodeSelector作为pv,告诉它对卷使用node1机会是 1。node1没有/mnt/data目录,这是卷的hostPath目录。 2. node1可能有/mnt/data,但是pod正被安排在没有/mnt/data目录的其他节点上:

代码语言:javascript
运行
复制
apiVersion : v1
kind : PersistentVolume
metadata :
   name : pv1
spec :
  capacity :
    storage : 2Gi
  accessModes :
    - ReadWriteOnce
  persistentVolumeReclaimPolicy : Retain
  storageClassName : local-storage
  local : 
    fsType : ext4
    path : /mnt/data
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - node1

解决方案:确保所有可调度节点上都存在/mnt/data

尝试修改您的文件以添加、nodeNamenodeSelectornodeAffinity,以强制它在具有适当hostPath的同一节点上进行调度。在下面的示例中,假设node1/mnt/data目录。

代码语言:javascript
运行
复制
apiVersion : v1
kind : Pod
metadata :
  name : pod1
spec :
  nodeName: node1 #<------------this
  containers:
  - name: www
    image: nginx:alpine
    ports:
      - containerPort: 80
        name: www
    volumeMounts:
      - name: www-store
        mountPath: /usr/share/nginx/html
  volumes :
    - name : www-store
      persistentVolumeClaim :
        claimName : pvc1
票数 3
EN

Stack Overflow用户

发布于 2022-01-25 16:18:34

如果在Rancher Kubernetes引擎(RKE)集群上运行,则可能会出现此问题,因为每个kubelet也作为容器运行。因此,它看不到它运行的节点的文件系统。

解决方案是在配置kubelet中的集群时添加额外的绑定挂载(用于cluster.yml服务)。例如,如果要将节点上的/data-1作为/data-1挂载在kubelet上:

代码语言:javascript
运行
复制
services:
  ...
  kubelet: 
    extra_binds:
    - "/data-1:/data-1"
票数 4
EN

Stack Overflow用户

发布于 2022-11-19 22:45:39

在类似于Rancher Kubernetes引擎(RKE)的塔罗斯上,另一个答案也运行kubelet容器,必须在MachineConfig.kubelet中使用配置 extraMounts,例如:

代码语言:javascript
运行
复制
extraMounts:
  - destination: /var/mnt/nvme1
    type: bind
    source: /var/mnt/nvme1
    options:
      - bind
      - rshared
      - rw
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68503386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档