简体   繁体   English

如何在Kubernetes中直接挂载外部NFS共享/卷(1.10.3)

[英]How to directly mount external NFS share/volume in kubernetes(1.10.3)

I am using kubernetes : v1.10.3 , i have one external NFS server which i am able to mount anywhere ( any physical machines). 我正在使用kubernetes:v1.10.3,我有一台外部NFS服务器,可以将其安装在任何地方(任何物理机器)。 I want to mount this NFS directly to pod/container . 我想将此NFS直接安装到pod / container。 I tried but every time i am getting error. 我尝试过,但每次遇到错误时。 don't want to use privileges, kindly help me to fix. 不想使用特权,请帮助我修复。

ERROR: MountVolume.SetUp failed for volume "nfs" : mount failed: exit status 32 Mounting command: systemd-run Mounting arguments: --description=Kubernetes transient mount for /var/lib/kubelet/pods/d65eb963-68be-11e8-8181-00163eeb9788/volumes/kubernetes.io~nfs/nfs --scope -- mount -t nfs 10.225.241.137:/stagingfs/alt/ /var/lib/kubelet/pods/d65eb963-68be-11e8-8181-00163eeb9788/volumes/kubernetes.io~nfs/nfs Output: Running scope as unit run-43393.scope. 错误:卷“ nfs”的MountVolume.SetUp失败:装载失败:退出状态32装载命令:systemd-run装载参数:--description = Kubernetes临时装载/ var / lib / kubelet / pods / d65eb963-68be-11e8- 8181-00163eeb9788 / volumes / kubernetes.io〜nfs / nfs --scope-mount -t nfs 10.225.241.137:/stagingfs/alt/ / var / lib / kubelet / pods / d65eb963-68be-11e8-8181-00163eeb9788 / volume / kubernetes.io〜nfs / nfs输出:运行范围作为单元run-43393.scope。 mount: wrong fs type, bad option, bad superblock on 10.225.241.137:/stagingfs/alt/, missing codepage or helper program, or other error (for several filesystems (eg nfs, cifs) you might need a /sbin/mount. helper program) In some cases useful info is found in syslog - try dmesg | 挂载:错误的fs类型,错误的选项,在10.225.241.137:/stagingfs/alt/上错误的超级块,缺少的代码页或帮助程序或其他错误(对于多个文件系统(例如nfs,cif),您可能需要/ sbin / mount。帮助程序)在某些情况下,可以在syslog中找到有用的信息-尝试dmesg | tail or so. 尾巴左右。

NFS server :  mount -t nfs 10.X.X.137:/stagingfs/alt   /alt    

I added two things for volume here but getting error every time. 我在这里增加了两件事,但是每次都会出错。

first : 首先:

"volumeMounts": [
          {
            "name": "nfs",
            "mountPath": "/alt"
          }

        ],

Second : 第二:

 "volumes": [
  {
    "name": "nfs",
    "nfs": {
      "server": "10.X.X.137",
      "path": "/stagingfs/alt/"
    }
  }

],

---------------------complete yaml -------------------------------- ---------------------完整的Yaml --------------------------- -----

{
  "kind": "Deployment",
  "apiVersion": "extensions/v1beta1",
  "metadata": {
    "name": "jboss",
    "namespace": "staging",
    "selfLink": "/apis/extensions/v1beta1/namespaces/staging/deployments/jboss",
    "uid": "6a85e235-68b4-11e8-8181-00163eeb9788",
    "resourceVersion": "609891",
    "generation": 2,
    "creationTimestamp": "2018-06-05T11:34:32Z",
    "labels": {
      "k8s-app": "jboss"
    },
    "annotations": {
      "deployment.kubernetes.io/revision": "2"
    }
  },
  "spec": {
    "replicas": 1,
    "selector": {
      "matchLabels": {
        "k8s-app": "jboss"
      }
    },
    "template": {
      "metadata": {
        "name": "jboss",
        "creationTimestamp": null,
        "labels": {
          "k8s-app": "jboss"
        }
      },
      "spec": {
          "volumes": [
      {
        "name": "nfs",
        "nfs": {
          "server": "10.X.X.137",
          "path": "/stagingfs/alt/"
        }
      }

    ],
        "containers": [
          {
            "name": "jboss",
            "image": "my.abc.com/alt:7.1_1.1",
            "resources": {},
            "volumeMounts": [
          {
            "name": "nfs",
            "mountPath": "/alt"
          }

        ],
            "terminationMessagePath": "/dev/termination-log",
            "terminationMessagePolicy": "File",
            "imagePullPolicy": "IfNotPresent",
            "securityContext": {
              "privileged": true
            }
          }
        ],
        "restartPolicy": "Always",
        "terminationGracePeriodSeconds": 30,
        "dnsPolicy": "ClusterFirst",
        "securityContext": {},
        "schedulerName": "default-scheduler"
      }
    },
    "strategy": {
      "type": "RollingUpdate",
      "rollingUpdate": {
        "maxUnavailable": "25%",
        "maxSurge": "25%"
      }
    },
    "revisionHistoryLimit": 10,
    "progressDeadlineSeconds": 600
  },
  "status": {
    "observedGeneration": 2,
    "replicas": 1,
    "updatedReplicas": 1,
    "readyReplicas": 1,
    "availableReplicas": 1,
    "conditions": [
      {
        "type": "Available",
        "status": "True",
        "lastUpdateTime": "2018-06-05T11:35:45Z",
        "lastTransitionTime": "2018-06-05T11:35:45Z",
        "reason": "MinimumReplicasAvailable",
        "message": "Deployment has minimum availability."
      },
      {
        "type": "Progressing",
        "status": "True",
        "lastUpdateTime": "2018-06-05T11:35:46Z",
        "lastTransitionTime": "2018-06-05T11:34:32Z",
        "reason": "NewReplicaSetAvailable",
        "message": "ReplicaSet \"jboss-8674444985\" has successfully progressed."
      }
    ]
  }
}

Regards Anupam Narayan 问候阿努帕姆·纳拉扬

As stated in the error log: 如错误日志中所述:

for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount. helper program

According to this question , you might be missing the nfs-commons package which you can install using sudo apt install nfs-common 根据这个问题 ,您可能会缺少可以使用sudo apt install nfs-common安装的nfs-commons软件包。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM