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