Kubernetes:为什么调度程序会移动一个吊舱

时间:2018-02-20 17:34:25

标签: kubernetes

我有一个应用程序,通过部署类型部署,副本为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是我的朋友,对吗?

2 个答案:

答案 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会保留多长时间的记录(现在我无法使用它,但它至少有足够长的时间来帮助我:)