我试图在复制控制器中安装外部nfs共享。当我创建复制控制器时,该容器处于挂起状态。获取有关该吊舱的详细信息,我收到以下事件:如何在Kubernetes中安装外部nfs共享?
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共享位于网络上的另一台计算机上。如果我进入主机,我可以成功挂载nfs共享,所以我相信导出配置正确。环顾网上,似乎使用nfs共享的唯一例子就是在Kubernetes中定义的例子(一个pod与另一个共享)。是否没有办法直接从Kubernetes安装外部共享(我不想将它挂载到主机,然后从主机挂载到容器)。
这里是我的复制控制器:
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
UPDATE
思考它更后,我意识到问题可能是,它无法找到服务器(thuey.jolt.local)。这可能只是看内部的DNS。这是否准确?如果是这样,是否有任何解决办法?
UPDATE
再次试图在此之后,它现在正直接从吊舱的网络NFS服务器安装。
您的kubelet日志是否显示比上述pod事件日志更具体的内容?我想,这将是我检查的下一个地方。该错误不是特定于哪个安装失败。作为隔离问题的一部分,您也可以尝试在排除故障的同时取出“秘密”安装盘。对不起,我没有真正的答案。 – rwehner
我已经删除了秘密装置,并且仍然有错误。我也使用了秘密安装,并且它工作。检查kubelete日志的最佳方法是什么?我试图在主机上找到/var/log/kubelet.log,但它不存在。 – thuey
Te在基于systemd的主机(如CoreOS)上查看kubelet日志,这应该起作用:journalctl -lu kubelet.service – rwehner