3

我正在尝试将 NFS 挂载到我的 Kubernetes pod 中。

我在我的本地机器上使用 Minikube 并且曾经有一个 hostPath 卷,但它的性能非常糟糕(页面加载大约需要 30 秒或更长时间)

我在我的 Mac 上设置了 NFS 服务器,如下所示:

echo "/Users/my-name/share-folder -alldirs -mapall="$(id -u)":"$(id -g)" $(minikube ip)" | sudo tee -a /etc/exports && sudo nfsd restart

并通过以下方式对其进行了验证:

showmount -e

由此可见:

Exports list on localhost:
/Users/my-name/share-folder  192.168.xx.x

我已经设置/应用了一个 persistentVolume,如下所示:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: default-sources-volume
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: standard
  nfs:
    server: 192.168.xx.x # Minikube gateway to host
    path: '/Users/my-name/share-folder'

我已经设置/应用了 persistentVolumeClaim,如下所示:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: sources-volume-claim
  namespace: default
spec:
  storageClassName: standard
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi

我可以在我的 Kubernetes 仪表板中看到 persistentVolume 和 persistentVolumeClaim。它甚至说 persistentVolumeClaim 是绑定的,但是......

当我通过 kubectl 命令应用更新的 deployment.yaml 文件时,我一直看到错误:

卷“default-sources-volume”的 MountVolume.SetUp 失败:挂载失败:退出状态 32 挂载命令:systemd-run 挂载参数:--description=Kubernetes 临时挂载 /var/lib/kubelet/pods/f4b26fe1-9657- 11e8-8f3d-e61688dc52f9/volumes/kubernetes.io~nfs/default-sources-volume --scope -- mount -t nfs 192.168.xx.x:/Users/my-name/share-folder /var/lib/kubelet /pods/f4b26fe1-9657-11e8-8f3d-e61688dc52f9/volumes/kubernetes.io~nfs/default-sources-volume 输出:运行范围为单位:run-r1b76b36ffcb1409284e308b11c729744.scope mount.nfs:安装 192.168 时服务器拒绝访问。 xx.x:/用户/我的名字/共享文件夹

4

1 回答 1

1

请在你的“/etc/exports”中试试这个
/Users/my-name/share-folder *(rw,fsid=0,async,no_subtree_check,no_auth_nlm,insecure,no_root_squash)


sudo exportfs -a

我发现这insecure是关键。

于 2019-01-17T08:23:52.217 回答