我的Ubuntu机器上安装了Kubernetes设置。我正在尝试设置nfs卷并根据此http://kubernetes.io/v1.1/examples/nfs/文档将其挂载到容器中。
nfs服务和pod配置
kind: Service
apiVersion: v1
metadata:
name: nfs-server
spec:
ports:
- port: 2049
selector:
role: nfs-server
---
apiVersion: v1
kind: Pod
metadata:
name: nfs-server
labels:
role: nfs-server
spec:
containers:
- name: nfs-server
image: jsafrane/nfs-data
ports:
- name: nfs
containerPort: 2049
securityContext:
privileged: true
用于挂载nfs卷的pod配置
apiVersion: v1
kind: Pod
metadata:
name: nfs-web
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
volumeMounts:
# name must match the volume name below
- name: nfs
mountPath: "/usr/share/nginx/html"
volumes:
- name: nfs
nfs:
# FIXME: use the right hostname
server: 192.168.3.201
path: "/"
当我运行kubectl describe nfs-web时,我得到以下输出,提到它无法挂载nfs卷。可能是什么原因?
Name: nfs-web
Namespace: default
Image(s): nginx
Node: 192.168.1.114/192.168.1.114
Start Time: Sun, 06 Dec 2015 08:31:06 +0530
Labels: <none>
Status: Pending
Reason:
Message:
IP:
Replication Controllers: <none>
Containers:
web:
Container ID:
Image: nginx
Image ID:
State: Waiting
Reason: ContainerCreating
Ready: False
Restart Count: 0
Environment Variables:
Conditions:
Type Status
Ready False
Volumes:
nfs:
Type: NFS (an NFS mount that lasts the lifetime of a pod)
Server: 192.168.3.201
Path: /
ReadOnly: false
default-token-nh698:
Type: Secret (a secret that should populate this volume)
SecretName: default-token-nh698
Events:
FirstSeen LastSeen Count From SubobjectPath Reason Message
───────── ──────── ───── ──── ───────────── ────── ───────
36s 36s 1 {scheduler } Scheduled Successfully assigned nfs-web to 192.168.1.114
36s 2s 5 {kubelet 192.168.1.114} FailedMount Unable to mount volumes for pod "nfs-web_default": exit status 32
36s 2s 5 {kubelet 192.168.1.114} FailedSync Error syncing pod, skipping: exit status 32
答案 0 :(得分:6)
我遇到了同样的问题,我通过在每个Kubernetes节点中安装nfs-common来解决它。
apt-get install -y nfs-common
我的节点安装时没有nfs-common。 Kubernetes将要求每个节点将NFS挂载到可用于pod的特定目录中。由于未找到 mount.nfs ,安装过程失败。
祝你好运!答案 1 :(得分:1)
在您的客户端上看起来像volumes.nfs.server = 192.168.3.201配置不正确。它应该设置为nfs-server服务的ClusterIP地址。
答案 2 :(得分:1)
立即解决此问题...使用coreos-alpha (1010.1.0)
使用quay.io
中的Kubernetes v1.2.2_coreos.0
图片
群集外部的NFS服务器的RHEL。一切正常。唯一的问题是pod挂载nfs共享。
PV,PVC创作似乎没问题...... 16m 5s 77 {kubelet 10.163.224.136} Warning FailedMount Unable to mount volumes for pod "es-data-xvzxl_default(65b2c286-078e-11e6-99f9-005056a71442)": Mount failed: exit status 32
Mounting arguments: 10.163.224.128:/data/kubefs /var/lib/kubelet/pods/65b2c286-078e-11e6-99f9-005056a71442/volumes/kubernetes.io~nfs/pv0001 nfs []
Output: mount: wrong fs type, bad option, bad superblock on 10.163.224.128:/data/kubefs,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount.<type> helper program)
In some cases useful info is found in syslog - try
dmesg | tail or so.
答案 3 :(得分:1)
NFS出现了同样的问题,即仅允许root挂载。 固定:
a。允许非root用户安装NFS(在服务器上)。
或
b。在PersistentVolume中添加
mountOptions:
- nfsvers=4.1
答案 4 :(得分:0)
我也遇到了v1.1.2上的这个mount / syncing问题,并且在K8s之外运行了一个独立的NFS服务。
虽然我无法弄清楚它是否是K8中的一个错误,或者我的NFS服务器是否正在运行,但我认为它是前者,因为我没有对我的NFS做任何特别的事情,通常会结束发生的事情是,Pod最终会自动重启并且事情“正常”或我必须手动kubectl delete/create
。
我知道这不是最优的,也不是根本问题的确定性,而是我目前的创可贴解决方案。
答案 5 :(得分:0)
我有同样的问题。
由在工作程序节点上安装nfs-utils修复。
答案 6 :(得分:0)
就我而言,问题是我没有在 /etc/exports 文件中声明 nfs 的主机服务器。在那里为我的主机服务器添加一个条目后,该卷工作正常。
如果你以任何方式修改文件,那么你也需要重新启动服务;
sudo systemctl restart nfs-kernel-server
/etc/exports
文件中的条目示例;
/var/nfs/home 192.111.222.333(rw,sync,no_subtree_check)
答案 7 :(得分:0)
就我而言,问题在于卷 hostPath 中定义的文件夹不是在本地创建的。在工作节点服务器中创建文件夹后,问题得到解决。
newInstance