ubuntu – Kubernetes服务在一个节点关闭后停止

我正在使用VM(主)和3个裸机服务器(都运行Ubuntu 14.04)建立一个小型Kubernetes集群.我关注了Kubernetes install tutorial for Ubuntu.每个裸机服务器也有使用 Ceph 0.94.5导出的2T磁盘空间.一切正常,但是当一个节点无法启动(无法挂载分区)时,集群提供的唯一服务也停止了工作.我运行一些命令:

$kubectl get nodes
NAME        LABELS                             STATUS
10.70.2.1   kubernetes.io/hostname=10.70.2.1   Ready,SchedulingDisabled
10.70.2.2   kubernetes.io/hostname=10.70.2.2   Ready
10.70.2.3   kubernetes.io/hostname=10.70.2.3   NotReady
10.70.2.4   kubernetes.io/hostname=10.70.2.4   Ready

它只是表明我有一个节点.

$kubectl get pods
NAME               READY     STATUS    RESTARTS   AGE
java-mysql-5v7iu   1/1       Running   1          5d
java-site-vboaq    1/1       Running   0          4d

$kubectl get services
NAME         LABELS                                    SELECTOR          IP(S)          PORT(S)
java-mysql   name=java-mysql                           name=java-mysql   ***.***.3.12   3306/TCP
java-site    name=java-site                            name=java-site    ***.***.3.11   80/TCP
kubernetes   component=apiserver,provider=kubernetes   <none>            ***.***.3.1    443/TCP

它显示所有pod和服务都运行正常.但是,我无法连接到其中一个pod(java-site-vboaq):

$kubectl exec java-site-vboaq -i -t -- bash
error: Error executing remote command: Error executing command in container: container not found ("java-site")

但是,pod甚至没有在被击落的节点上运行:

$kubectl describe pod java-mysql-5v7iu
Image(s):           mysql:5
Node:               10.70.2.2/10.70.2.2
Status:             Running

$kubectl describe pod java-site-vboaq
Image(s):           javasite-img
Node:               10.70.2.2/10.70.2.2
Status:             Running

在被击落的节点(10.70.2.3)恢复后,一切都恢复正常.

我该如何解决这个问题?如果一个节点出局,我希望Kubernetes相应地迁移pod并保持服务正常运行.是否与被击倒的节点卡在引导(等待分区挂载)而不是100%下降这一事实有关?

最佳答案 这里有一些潜在的问题:

1)Ceph需要启动并运行其节点:您是说节点是从不同的Ceph集群安装磁盘,还是在同一节点上运行的Ceph集群?如果相同的节点,则有意义的是驱动器不可访问使K8s瘫痪.

2)在尝试安装已经安装在不同节点上的磁盘时,有一个错误(至少它在1.0.6并且不确定它是否已解决)关于pod无法启动,因为它从来没有卸载.这是一个K8s问题(对不起,现在似乎找不到链接)

3)如果节点3只有2个节点,则etd也可能卡在等待节点3,因为它需要多数选举主节点.

点赞