Kubernetes豆荚(一些)在跑了一天后死亡

时间:2015-10-11 18:34:29

标签: kubernetes

我们正在AWS上尝试使用Kubernetes 1.0.6版进行测试设置。

此设置包括用于Cassandra(2节点),Spark(主服务器,2工作程序,驱动程序),RabbitMQ(1节点)的pod。有些豆荚会在一天左右后死亡

有没有办法从Kubernetes获取他们死亡的原因/原因?

当您尝试手动重新启动死亡的pod时,您会获得一些pod状态,因为“category / spark-worker已准备好,容器正在创建”并且pod启动永远不会完成。

方案中的唯一选项是“kube-down.sh然后kube-up.sh”并从头开始进行整个设置。

2 个答案:

答案 0 :(得分:1)

kubectl describe ${POD_NAME}kubectl logs ${POD_NAME} ${CONTAINER_NAME}应该为您提供更多调试信息。

另请参阅https://github.com/kubernetes/kubernetes/blob/master/docs/user-guide/application-troubleshooting.md#debugging-pods了解常规故障排除说明。

编辑:

在评论中讨论后,我认为您的节​​点存在的问题是该节点在> 5分钟内没有响应(可能是由于潮流数据库的内存使用率很高)。节点控制器然后认为节点未准备好并且逐出节点上的所有pod。请注意,将重新创建由复制控制器管理的pod(使用不同的名称),但不会重新创建手动创建的pod。

如果您怀疑潮流内存使用是根本原因,您可以尝试不运行此吊舱以查看问题是否自行解决。或者,您可以将influxdb container的内存限制更改为更小的值。

EDIT2:

了解节点发生情况的一些提示:

  1. 检查/var/log/kubelet.log。这是最简单的方法。

  2. kubectl describe nodeskubectl get events | grep <node_name>(旧版kubernetes)

  3. 此命令将为您提供与节点状态关联的事件。但是,事件每两个小时刷新一次,因此您需要在节点遇到问题后的时间窗口内运行此命令。

    1. kubectl get node <node_name> -o yaml --watch允许您监视节点对象,包括其在yaml中的状态。这将定期更新。

答案 1 :(得分:1)

由于an issue in Kubernetes,您的节点可能已耗尽磁盘空间。

最近发布的Kubernetes v1.0.7中提供了间接修复。

  

AWS:为aufs创建一个存储池,而不是两个#13803(justinsb)

但正如上述问题所述,在这方面还有一些工作要做。