NFS 是硬挂载还是软挂载到 Kubernetes Pods?
Is NFS hard- or soft-mounted to Kubernetes Pods?
使用 NFS 卷在 Kubernetes 中创建 Pod 时,NFS 是硬挂载还是软挂载?
据我所知,这可能会影响它处理超时的方式?
示例 yaml:
apiVersion: v1
kind: Pod
metadata:
name: nfs-web
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
volumeMounts:
- name: nfs
mountPath: "/usr/share/nginx/html"
volumes:
- name: nfs
nfs:
server: nfs-server.default.kube.local
path: "/"
我相信 POD 内的 NFS 安装将使用容器中 NFS 实现提供的默认设置 OS。我不能 100% 确定(我对代码不是很熟悉),但根据我的经验,NFS 挂载是使用 hard
选项挂载的,这是大多数 NFS 实现中的默认选项(参见 man nfs
了解有关您的 OS 的更多详细信息;soft
通常被认为是危险的。)
NFSVolumeSource struct doesn't appear to have the ability to know about mount settings (except read-only) and I don't see any hard-coded options in the NFS volume code.
您可以自己检查 PODs 使用类似这样的东西来收集正在使用的 NFS 选项:
$ kubectl exec nfs-web-<XXXXX> -c web -- mount|grep nfs
默认情况下它总是“硬”挂载...但是您可以通过在 PV 定义中显式传递附加注释来将其更改为软。
volume.beta.kubernetes.io/mount-options: soft
使用 NFS 卷在 Kubernetes 中创建 Pod 时,NFS 是硬挂载还是软挂载?
据我所知,这可能会影响它处理超时的方式?
示例 yaml:
apiVersion: v1
kind: Pod
metadata:
name: nfs-web
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
volumeMounts:
- name: nfs
mountPath: "/usr/share/nginx/html"
volumes:
- name: nfs
nfs:
server: nfs-server.default.kube.local
path: "/"
我相信 POD 内的 NFS 安装将使用容器中 NFS 实现提供的默认设置 OS。我不能 100% 确定(我对代码不是很熟悉),但根据我的经验,NFS 挂载是使用 hard
选项挂载的,这是大多数 NFS 实现中的默认选项(参见 man nfs
了解有关您的 OS 的更多详细信息;soft
通常被认为是危险的。)
NFSVolumeSource struct doesn't appear to have the ability to know about mount settings (except read-only) and I don't see any hard-coded options in the NFS volume code.
您可以自己检查 PODs 使用类似这样的东西来收集正在使用的 NFS 选项:
$ kubectl exec nfs-web-<XXXXX> -c web -- mount|grep nfs
默认情况下它总是“硬”挂载...但是您可以通过在 PV 定义中显式传递附加注释来将其更改为软。
volume.beta.kubernetes.io/mount-options: soft