我有一个应用程序,通过部署类型部署,副本为1.调度程序不断将应用程序移动到不同的节点:
I0220 08:28:44.884808 1 event.go:218] 事件(v1.ObjectReference {善:" Pod",命名空间:"生产", 名称:" APP1-生产77c79bdc85-ddjfb&#34 ;, UID:" 109fa057-1618-11e8-bfb0-005056946b20",APIVersion:" v1", ResourceVersion:" 6017223",FieldPath:""}):输入:'正常'原因: '预定'成功将app1-production-77c79bdc85-ddjfb分配给 节点2
type为Normal,原因为Scheduled。什么"预定"意思?有没有办法找出它重新安排豆荚的确切原因?
另外,如果我希望这个pod在节点上停留很长一段时间 - Statefulset是我的朋友,对吗?
答案 0 :(得分:0)
我的猜测是你的kubelet出于某种原因驱逐了pod,使得部署的HA设计在内部调度程序中启动以从中恢复。试着找出kubelet驱逐你的Pod的原因。 StatefulSet根本无法帮助您,因为它专门用于保留网络身份,名称等内容,而无需在同一物理节点上安排(在典型的云设置中可随时消失)。
答案 1 :(得分:0)
好吧,如果我查看来自调度程序的所有日志:
kubectl logs kube-scheduler-master2 -n kube-system
然后找到上一个pod重新安排事件。我能够描述那个pod并且在那个输出中是原因:
Status: Failed
Reason: Evicted
Message: The node was low on resource: nodefs.
磁盘空间不足!
我不知道K8会保留多长时间的记录(现在我无法使用它,但它至少有足够长的时间来帮助我:)