【问题标题】:Mounting a NFS volume by a OpenShift 3.11 PersistentVolume: mount.nfs: mounting failed, reason given by server: No such file or directory通过 OpenShift 3.11 PersistentVolume 挂载 NFS 卷:mount.nfs:挂载失败,服务器给出的原因:没有这样的文件或目录
【发布时间】:2020-09-25 00:08:01
【问题描述】:

在我们的 OpenShift 3.11 集群中,我们尝试通过 PersistentVolume 和先前在外部 NFS 存储(Isilon 存储)上创建的 NFS 卷来使用 NFS。 我们在 Kubernetes/OpenShift 层上成功创建并应用了 PersistentVolume 和 PersistentVolumeClaim。 PVC 正确绑定 PV,但是在检查 Deployment 事件时,我们在挂载 NFS 阶段遇到错误。

持久卷:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: tool1pv
spec:
  capacity:
    storage: 100Gi 
  accessModes:
  - ReadWriteOnce 
  nfs: 
    path: /tool1shareenv1
    server: tommytheserver.companydomain.priv
  persistentVolumeReclaimPolicy: Retain
  claimRef:
    name: tool1claimenv1
    namespace: ocpnamespace1

PersistentVolumeClaim:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: tool1claimenv1
spec:
 accessModes:
   - ReadWriteOnce
 resources:
  requests:
    storage: 100Gi
 volumeName: tool1pvenv1 

在检查开发事件时,我们看到“没有这样的文件”:

MountVolume.SetUp failed for volume "tool1pvenv1" : mount failed:
 exit status 32 Mounting command: systemd-run Mounting arguments: --description=Kubernetes transient mount for /var/lib/origin/openshift.local.volumes/pods/f1cb1291-fe12-01ea-bb92-0050123aa39be/volumes/kubernetes.io~nfs/tool1pvenv1 --scope -- mount -t nfs tommytheserver.companydomain.priv:/tool1shareenv1
/var/lib/origin/openshift.local.volumes/pods/f1cb9191-fe73-11ea-bb92-005056ba12be/volumes/kubernetes.io~nfs/tool1pvenv1d Output: Running scope as unit run-74039.scope. **mount.nfs: mounting tommytheserver.companydomain.priv:/tool1env1 failed, reason given by server: No such file or directory**

我们调查了serverpath 字段并尝试了不同的变体,例如:

PersistentVolumeVersion2:

 apiVersion: v1
kind: PersistentVolume
metadata:
  name: tool1pv
spec:
  capacity:
    storage: 100Gi 
  accessModes:
  - ReadWriteOnce 
  nfs: 
    path: /tool1shareenv1
    server: tommytheserver.companydomain.priv/tool1shareenv1
  persistentVolumeReclaimPolicy: Retain
  claimRef:
    name: tool1claimenv1
    namespace: ocpnamespace1

但我们仍然面临同样的No such file 错误。

我们如何解决它?

【问题讨论】:

  • /tool1shareenv1 共享是否存在?是否正确允许来自您的节点的连接?您可以尝试在其中一个节点上手动挂载该共享吗?

标签: kubernetes openshift nfs persistent-storage isilon


【解决方案1】:

通常我会解决这样的问题...

  1. 仔细检查您的共享路径是否确实存在
  2. 获取运行 pod 的节点的 IP 地址,然后通过 ssh 访问它。您可以像这样获取 IP:
kubectl get pod <podname> -o wide -n namespace

然后我会确保我可以连接到共享所在的 nfs 服务器:

telnet <nfs server> port
  1. 之后我会运行 dmesg 来查看与安装相关的错误
  2. 我会尝试使用与您显示的错误相同的参数自行安装该卷。即-
mount -t nfs tommytheserver.companydomain.priv:/tool1shareenv1

如果没有看到这些故障排除步骤的结果,很难提供具体的答案。但是,这就是我会采取的方法。

【讨论】:

  • 最后的 mount 命令显示错误:我们在 PV 的路径字段中输入了错误的值。更详细地说,我们在请求“共享名称”时输入了用于挂载卷的路径(在我们的例子中,类似于“/vol/NFS1234X56”)。我们更正了该字段,错误消失了。
  • 同样的问题,但得到的 pod ip 是 none。
猜你喜欢
  • 1970-01-01
  • 2021-11-16
  • 1970-01-01
  • 1970-01-01
  • 2016-03-10
  • 1970-01-01
  • 2014-02-13
  • 2019-11-24
  • 1970-01-01
相关资源
最近更新 更多