我正在使用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,因为它需要多数选举主节点.