K8S中pod在挂载volume时出现FailedMount错误(exit status 32)

问题

先是在k8s中开启了一个persistentvolume和persistentvolumeclaim,后端挂载NFS,然后在和volume相同的namespace中启动一个pod挂载前面的persistentvolumeclaim。发现pod一直处于containercreating状态,使用describe查看pod的详细错误信息,提示在挂载volume时出现FailedMount错误,exit status 32。具体错误信息如下:

Events:
  FirstSeen LastSeen    Count   From            SubobjectPath   Reason      Message
  ───────── ────────    ─────   ────            ─────────────   ──────      ───────
  20s       20s     1   {scheduler }        Scheduled   Successfully assigned testpod to 192.168.0.10
  4s        4s      1   {kubelet 192.168.0.10}          FailedMount Unable to mount volumes for pod "testpod_default": exit status 32
  4s        4s      1   {kubelet 192.168.0.10}          FailedSync  Error syncing pod, skipping: exit status 32

解决方法

首先,要想成功挂载nfs,必须在kubernetes集群的每个node上安装nfs-common。

然后,在创建persistentvolume和persistentvolumeclaim时他们的name必须相同,而且和pod中的spec.containers.volumeMounts.name以及spec.volumes.name,spec.volumes.persistentVolumeClaim.claimName全都相同,此时才能成功挂载,启动Pod。

经过以上两步,应该就能顺利解决问题了。这不知道算不算是k8s的一个bug,碰到问题在网上找了各种方案都不行,最后自己经过多次尝试,终于解决了。希望分享出来能够帮助到其他人。

—————后续更新————
搭建了一个新的k8s集群,又碰到了这个问题,挂载卷失败。上面的解决方案也试过了,还是不行。本以为是使用了新版的kubernetes的原因,在网上到处查找解决方法都不行,最后发现是没有将NFS服务器挂载到管理平台本地目录中导致了错误,真是太傻逼了。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值