如何修复kubernetes nfs挂载错误没有这样的文件或目录

Sha*_*mir 5 nfs kubernetes google-kubernetes-engine

NFS我正在尝试在部署了其他 k8s 服务的同一集群中使用卷。但使用该服务的其中一项NFS失败并显示 \nOutput: mount.nfs: mounting nfs.default.svc.cluster.local:/opt/shared-shibboleth-idp failed, reason given by server: No such file or directory

\n\n

nfs PV

\n\n
apiVersion: v1\nkind: PersistentVolume\nmetadata:\n  name: nfs\nspec:\n  capacity:\n    storage: 10Gi\n  accessModes:\n    - ReadWriteMany\n  nfs:\n    server: nfs.default.svc.cluster.local # nfs is from svc {{ include "nfs.name" .}}\n    path: "/opt/shared-shibboleth-idp"\n
Run Code Online (Sandbox Code Playgroud)\n\n

描述nfs service

\n\n
\xe2\x9e\x9c  helm git:(ft-helm) \xe2\x9c\x97 kubectl describe svc nfs\nName:              nfs\nNamespace:         default\nLabels:            app=nfs\n                   chart=nfs-1.0.0\n                   heritage=Tiller\nAnnotations:       <none>\nSelector:          role=nfs\nType:              ClusterIP\nIP:                10.19.251.72\nPort:              mountd  20048/TCP\nTargetPort:        20048/TCP\nEndpoints:         10.16.1.5:20048\nPort:              nfs  2049/TCP\nTargetPort:        2049/TCP\nEndpoints:         10.16.1.5:2049\nPort:              rpcbind  111/TCP\nTargetPort:        111/TCP\nEndpoints:         10.16.1.5:111\n
Run Code Online (Sandbox Code Playgroud)\n\n

还有nfs deployment

\n\n
\xe2\x9e\x9c  helm git:(ft-helm) \xe2\x9c\x97 kubectl describe replicationcontrollers telling-quoll-nfs\nName:         telling-quoll-nfs\nNamespace:    default\nSelector:     role=nfs\nLabels:       app=nfs\n              chart=nfs-1.0.0\n              heritage=Tiller\nAnnotations:  <none>\nReplicas:     1 current / 1 desired\nPods Status:  1 Running / 0 Waiting / 0 Succeeded / 0 Failed\nPod Template:\n  Labels:  role=nfs\n  Containers:\n   nfs:\n    Image:        k8s.gcr.io/volume-nfs:0.8\n    Ports:        20048/TCP, 2049/TCP, 111/TCP\n    Host Ports:   0/TCP, 0/TCP, 0/TCP\n    Environment:  <none>\n    Mounts:\n      /exports from nfs (rw)\n  Volumes:\n   nfs:\n    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)\n    ClaimName:  nfs-pv-provisioning-demo\n    ReadOnly:   false\nEvents:         <none>\n\n
Run Code Online (Sandbox Code Playgroud)\n\n

以及它的使用地点

\n\n
volumeMounts:\n   # names must match the volume names below\n   - name: RELEASE-NAME-shared-shib\n     mountPath: "/opt/shared-shibboleth-idp"\n;\n;\nvolumes:\n  - name: RELEASE-NAME-shared-shib\n    persistentVolumeClaim:\n       claimName: nfs\n;\n;\n
Run Code Online (Sandbox Code Playgroud)\n\n

k8sversion

\n\n
\xe2\x9e\x9c  helm git:(ft-helm) \xe2\x9c\x97 kubectl version\nClient Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-20T04:49:16Z", GoVersion:"go1.12.6", Compiler:"gc", Platform:"darwin/amd64"}\nServer Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.7-gke.8", GitCommit:"7d3d6f113e933ed1b44b78dff4baf649258415e5", GitTreeState:"clean", BuildDate:"2019-06-19T16:37:16Z", GoVersion:"go1.11.5b4", Compiler:"gc", Platform:"linux/amd64"}\n
Run Code Online (Sandbox Code Playgroud)\n

Mr.*_*ler 2

Patrick W正如和的评论中提到的damitj07

在尝试挂载之前,您需要手动创建文件夹或目录,否则 Kubernetes 将因目标目录不存在而引发错误。