我们正在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”并从头开始进行整个设置。
答案 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:
了解节点发生情况的一些提示:
检查/var/log/kubelet.log
。这是最简单的方法。
kubectl describe nodes
或kubectl get events | grep <node_name>
(旧版kubernetes)
此命令将为您提供与节点状态关联的事件。但是,事件每两个小时刷新一次,因此您需要在节点遇到问题后的时间窗口内运行此命令。
kubectl get node <node_name> -o yaml --watch
允许您监视节点对象,包括其在yaml中的状态。这将定期更新。答案 1 :(得分:1)
由于an issue in Kubernetes,您的节点可能已耗尽磁盘空间。
最近发布的Kubernetes v1.0.7中提供了间接修复。
AWS:为aufs创建一个存储池,而不是两个#13803(justinsb)
但正如上述问题所述,在这方面还有一些工作要做。