kubernetes - NFS卷装入会导致Kubernetes上的退出代码为32?

标签 kubernetes coreos

我正在尝试在复制 Controller 中挂载外部nfs共享。创建复制 Controller 时, pods 处于挂起状态。在pod上获取详细信息,我得到以下事件:

Events:
  FirstSeen             LastSeen            Count   From            SubobjectPath   Reason      Message
  Thu, 05 Nov 2015 11:28:33 -0700   Thu, 05 Nov 2015 11:28:33 -0700 1   {scheduler }                scheduled   Successfully assigned web-worker-hthjq to jolt-server-5
  Thu, 05 Nov 2015 11:28:43 -0700   Thu, 05 Nov 2015 11:28:43 -0700 1   {kubelet jolt-server-5}         failedMount Unable to mount volumes for pod "web-worker-hthjq_default": exit status 32
  Thu, 05 Nov 2015 11:28:43 -0700   Thu, 05 Nov 2015 11:28:43 -0700 1   {kubelet jolt-server-5}         failedSync  Error syncing pod, skipping: exit status 32

我的设置是本地计算机上的一个主节点和一个节点。这些机器正在运行CoreOS。 nfs共享存在于网络上的另一台计算机上。如果我将Shell装入主机,则可以成功挂载nfs共享,因此我相信导出配置正确。在线环顾四周,看来使用nfs共享的唯一示例是在Kubernetes(一个Pod与另一个Pod共享)中定义的共享。没有办法直接从Kubernetes挂载外部共享(我不想先将其挂载到主机然后从主机挂载到容器)。

这是我的复制 Controller :
apiVersion: v1
kind: ReplicationController
metadata:
  labels:
    name: web-worker
  name: web-worker
spec:
  replicas: 1
  selector:
    component: web-worker
  template:
    metadata:
      labels:
        app: task-queue
        component: web-worker
    spec:
      containers:
        - command:
            - /sbin/my_init
          image: quincy/php-apache2:latest
          name: web-worker
          ports:
            - containerPort: 80
              protocol: TCP
          volumeMounts:
            - name: code-base
              mountPath: /var/www/html
            - name: local-secrets
              mountPath: /secrets
      volumes:
        - name: code-base
          nfs:
            server: thuey.jolt.local
            path: "/Users/thuey/Sites/jolt/jolt-web"
        - name: local-secrets
          secret:
            secretName: local-secret

更新

经过更多考虑之后,我意识到问题可能在于找不到服务器(thuey.jolt.local)。它可能只是在查看内部DNS。准确吗?如果是这样,那有什么办法吗?

更新

再次尝试后,它现在可以直接从Pod安装到联网的nfs服务器。

最佳答案

在@rwehner的帮助下,我终于能够弄清楚。检查kubelet日志显示:
Output: mount.nfs: rpc.statd is not running but is required for remote locking.
一旦我使rpcbind运行,挂载就起作用了。

关于kubernetes - NFS卷装入会导致Kubernetes上的退出代码为32?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33552277/

相关文章:

azure - 在Azure上部署kubernetes集群

docker - 如何在CoreOS上降级Docker?

kubernetes - 从Azure DevOps删除多个脱机代理的API

kubernetes - Kubernetes:如何在不更改外部IP地址的情况下更新 namespace ?

go - 为 Kubernetes go-client 使用 HTTP 代理

kubernetes - 如何在 Kubernetes Secrets 中生成随机字符串/密码

digital-ocean - 在 CoreOS 云配置中执行命令(例如添加交换)

amazon-web-services - Kubernetes 和 AWS 上面向 Web 的应用程序

kubernetes - Kubectl 能记住我吗?

docker - Hostpath 卷未安装在 Windows 的 Docker 桌面上运行的 kubernetes 上