似乎我可能需要遍历v1.Node->NodeStatus->Conditions[]
切片并按过渡时间进行排序,然后确定最近的计时条件是否为NodeConditionType == "Ready"
。我想知道是否有更好的方法,或者该方法是否有缺陷?
答案 0 :(得分:3)
您在寻找正确的位置,但是条件可能无法完全按照您的问题所暗示的那样工作。条件不应视为基于时间的事件,而应视为当前状态。引用API conventions documentation:
条件表示对象状态的最新可用观测值。
因此,不必查找最新的条件,而是针对您要观察的状态类型寻找 条件。应该只有一个NodeConditionType
是Ready
的人,但是您需要检查.Status
上的NodeCondition
字段以确认其值是否为True
,{ {1}}或False
。
答案 1 :(得分:0)
在我的情况下,我启用了TaintBasedEvictions
and TaintNodesByCondition
功能门,并且k8s节点控制器会在节点上自动添加一些污点(例如node.kubernetes.io/not-ready
,node.kubernetes.io/unreachable
),我只需要监视节点,然后检查异味。