我想这是一个典型的网络问题,但是我无法弄清楚我在做什么错。
/test *(rw,sync,no_subtree_check)
ufw allow nfs
mount -t nfs <server_IP>:/test
。可以。但是,当我尝试在VM(由minikube创建)中运行同一命令时,命令超时。为什么?
在虚拟机中,我检查了以下内容:
这是我以root用户身份运行的命令列表:
mkdir -p /test
chown nobody:nogroup /test
chmod 777 /test
echo "/test *(rw,sync,no_subtree_check)" >> /etc/exports
exportfs -a
systemctl restart nfs-kernel-server
ufw allow nfs
minikube start
minikube ssh mkdir -p /myTest && sudo mount -t nfs <myIp>:/test /myTest
答案 0 :(得分:0)
首先,我们需要将NFS配置为卷的后端,而不是默认主机(minikube目录)。输入以下命令以导出NFS共享:
$ echo "/Users -alldirs -mapall="$(id -u)":"$(id -g)" <minikube-ip>"| sudo tee -a /etc/exports
您需要在minikube-ip
处交换您的实际IP地址,您可以通过键入以下命令来进行检查:
$ minikube ip
然后,我们需要定义yaml文件来创建NFS卷。
apiVersion: v1
kind: PersistentVolume
metadata:
name: test-nfs
spec:
capacity:
storage: 8Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: standard
nfs:
server: <minikube-ip>
path: /Users/Shared/Sites/
我们可以看到它已经使用我们之前导出的NFS路径创建了Volume。
$ kubectl get pv -o wide
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
test-nfs 8Gi RWX Retain Available standard 7s
$ kubectl describe pv test-nfs
Name: test-nfs
Labels: <none>
Annotations: <none>
StorageClass: standard
Status: Available
Claim:
Reclaim Policy: Retain
Access Modes: RWX
Capacity: 8Gi
Message:
Source:
Type: NFS (an NFS mount that lasts the lifetime of a pod)
Server: <minikube-ip>
Path: /Users/Shared/Sites/
ReadOnly: false
Events: <none>
我鼓励您阅读this article,其中解释了何时应使用NFS。希望对您有帮助。